All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
@ 2020-12-18 10:57 ` matthias.bgg
  0 siblings, 0 replies; 14+ messages in thread
From: matthias.bgg @ 2020-12-18 10:57 UTC (permalink / raw)
  To: mpm, herbert, rjui, sbranden, f.fainelli
  Cc: linux-kernel, Julia.Lawall, bcm-kernel-feedback-list,
	linux-arm-kernel, nsaenzjulienne, linux-crypto, Matthias Brugger

From: Matthias Brugger <mbrugger@suse.com>

When trying to disable the block we bitwise or the control
register with value zero. This is confusing as using bitwise or with
value zero doesn't have any effect at all. Drop this as we already set
the enable bit to zero by appling inverted RNG_RBGEN_MASK.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>

---

Changes in v2:
- fix commit message, dropping Fixes tag
- drop inverted RNT_RBGEN_ENABLE in disable case

 drivers/char/hw_random/iproc-rng200.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
index 01583faf9893..70cd818a0f31 100644
--- a/drivers/char/hw_random/iproc-rng200.c
+++ b/drivers/char/hw_random/iproc-rng200.c
@@ -28,7 +28,6 @@
 #define RNG_CTRL_OFFSET					0x00
 #define RNG_CTRL_RNG_RBGEN_MASK				0x00001FFF
 #define RNG_CTRL_RNG_RBGEN_ENABLE			0x00000001
-#define RNG_CTRL_RNG_RBGEN_DISABLE			0x00000000
 
 #define RNG_SOFT_RESET_OFFSET				0x04
 #define RNG_SOFT_RESET					0x00000001
@@ -61,7 +60,6 @@ static void iproc_rng200_restart(void __iomem *rng_base)
 	/* Disable RBG */
 	val = ioread32(rng_base + RNG_CTRL_OFFSET);
 	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
 	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
 
 	/* Clear all interrupt status */
@@ -174,7 +172,6 @@ static void iproc_rng200_cleanup(struct hwrng *rng)
 	/* Disable RNG hardware */
 	val = ioread32(priv->base + RNG_CTRL_OFFSET);
 	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
 	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
 }
 
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
@ 2020-12-18 10:57 ` matthias.bgg
  0 siblings, 0 replies; 14+ messages in thread
From: matthias.bgg @ 2020-12-18 10:57 UTC (permalink / raw)
  To: mpm, herbert, rjui, sbranden, f.fainelli
  Cc: Matthias Brugger, linux-kernel, Julia.Lawall,
	bcm-kernel-feedback-list, linux-arm-kernel, nsaenzjulienne,
	linux-crypto

From: Matthias Brugger <mbrugger@suse.com>

When trying to disable the block we bitwise or the control
register with value zero. This is confusing as using bitwise or with
value zero doesn't have any effect at all. Drop this as we already set
the enable bit to zero by appling inverted RNG_RBGEN_MASK.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>

---

Changes in v2:
- fix commit message, dropping Fixes tag
- drop inverted RNT_RBGEN_ENABLE in disable case

 drivers/char/hw_random/iproc-rng200.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
index 01583faf9893..70cd818a0f31 100644
--- a/drivers/char/hw_random/iproc-rng200.c
+++ b/drivers/char/hw_random/iproc-rng200.c
@@ -28,7 +28,6 @@
 #define RNG_CTRL_OFFSET					0x00
 #define RNG_CTRL_RNG_RBGEN_MASK				0x00001FFF
 #define RNG_CTRL_RNG_RBGEN_ENABLE			0x00000001
-#define RNG_CTRL_RNG_RBGEN_DISABLE			0x00000000
 
 #define RNG_SOFT_RESET_OFFSET				0x04
 #define RNG_SOFT_RESET					0x00000001
@@ -61,7 +60,6 @@ static void iproc_rng200_restart(void __iomem *rng_base)
 	/* Disable RBG */
 	val = ioread32(rng_base + RNG_CTRL_OFFSET);
 	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
 	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
 
 	/* Clear all interrupt status */
@@ -174,7 +172,6 @@ static void iproc_rng200_cleanup(struct hwrng *rng)
 	/* Disable RNG hardware */
 	val = ioread32(priv->base + RNG_CTRL_OFFSET);
 	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
 	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
 }
 
-- 
2.29.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 2/2] hwrng: iproc-rng200: Move enable/disable in separate function
  2020-12-18 10:57 ` matthias.bgg
@ 2020-12-18 10:57   ` matthias.bgg
  -1 siblings, 0 replies; 14+ messages in thread
From: matthias.bgg @ 2020-12-18 10:57 UTC (permalink / raw)
  To: mpm, herbert, rjui, sbranden, f.fainelli
  Cc: linux-kernel, Julia.Lawall, bcm-kernel-feedback-list,
	linux-arm-kernel, nsaenzjulienne, linux-crypto, Matthias Brugger

From: Matthias Brugger <mbrugger@suse.com>

We are calling the same code for enable and disable the block in various
parts of the driver. Put that code into a new function to reduce code
duplication.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>

---

Changes in v2:
- rename function to iproc_rng200_enable_set()
- use u32 value instead of uint32_t

 drivers/char/hw_random/iproc-rng200.c | 35 ++++++++++++---------------
 1 file changed, 16 insertions(+), 19 deletions(-)

diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
index 70cd818a0f31..a43743887db1 100644
--- a/drivers/char/hw_random/iproc-rng200.c
+++ b/drivers/char/hw_random/iproc-rng200.c
@@ -53,14 +53,24 @@ struct iproc_rng200_dev {
 
 #define to_rng_priv(rng)	container_of(rng, struct iproc_rng200_dev, rng)
 
-static void iproc_rng200_restart(void __iomem *rng_base)
+static void iproc_rng200_enable_set(void __iomem *rng_base, bool enable)
 {
-	uint32_t val;
+	u32 val;
 
-	/* Disable RBG */
 	val = ioread32(rng_base + RNG_CTRL_OFFSET);
 	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
+
+	if (enable)
+		val |= RNG_CTRL_RNG_RBGEN_ENABLE;
+
 	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
+}
+
+static void iproc_rng200_restart(void __iomem *rng_base)
+{
+	uint32_t val;
+
+	iproc_rng200_enable_set(rng_base, false);
 
 	/* Clear all interrupt status */
 	iowrite32(0xFFFFFFFFUL, rng_base + RNG_INT_STATUS_OFFSET);
@@ -82,11 +92,7 @@ static void iproc_rng200_restart(void __iomem *rng_base)
 	val &= ~RBG_SOFT_RESET;
 	iowrite32(val, rng_base + RBG_SOFT_RESET_OFFSET);
 
-	/* Enable RBG */
-	val = ioread32(rng_base + RNG_CTRL_OFFSET);
-	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
-	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
+	iproc_rng200_enable_set(rng_base, true);
 }
 
 static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
@@ -153,13 +159,8 @@ static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
 static int iproc_rng200_init(struct hwrng *rng)
 {
 	struct iproc_rng200_dev *priv = to_rng_priv(rng);
-	uint32_t val;
 
-	/* Setup RNG. */
-	val = ioread32(priv->base + RNG_CTRL_OFFSET);
-	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
-	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
+	iproc_rng200_enable_set(priv->base, true);
 
 	return 0;
 }
@@ -167,12 +168,8 @@ static int iproc_rng200_init(struct hwrng *rng)
 static void iproc_rng200_cleanup(struct hwrng *rng)
 {
 	struct iproc_rng200_dev *priv = to_rng_priv(rng);
-	uint32_t val;
 
-	/* Disable RNG hardware */
-	val = ioread32(priv->base + RNG_CTRL_OFFSET);
-	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
+	iproc_rng200_enable_set(priv->base, false);
 }
 
 static int iproc_rng200_probe(struct platform_device *pdev)
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 2/2] hwrng: iproc-rng200: Move enable/disable in separate function
@ 2020-12-18 10:57   ` matthias.bgg
  0 siblings, 0 replies; 14+ messages in thread
From: matthias.bgg @ 2020-12-18 10:57 UTC (permalink / raw)
  To: mpm, herbert, rjui, sbranden, f.fainelli
  Cc: Matthias Brugger, linux-kernel, Julia.Lawall,
	bcm-kernel-feedback-list, linux-arm-kernel, nsaenzjulienne,
	linux-crypto

From: Matthias Brugger <mbrugger@suse.com>

We are calling the same code for enable and disable the block in various
parts of the driver. Put that code into a new function to reduce code
duplication.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>

---

Changes in v2:
- rename function to iproc_rng200_enable_set()
- use u32 value instead of uint32_t

 drivers/char/hw_random/iproc-rng200.c | 35 ++++++++++++---------------
 1 file changed, 16 insertions(+), 19 deletions(-)

diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
index 70cd818a0f31..a43743887db1 100644
--- a/drivers/char/hw_random/iproc-rng200.c
+++ b/drivers/char/hw_random/iproc-rng200.c
@@ -53,14 +53,24 @@ struct iproc_rng200_dev {
 
 #define to_rng_priv(rng)	container_of(rng, struct iproc_rng200_dev, rng)
 
-static void iproc_rng200_restart(void __iomem *rng_base)
+static void iproc_rng200_enable_set(void __iomem *rng_base, bool enable)
 {
-	uint32_t val;
+	u32 val;
 
-	/* Disable RBG */
 	val = ioread32(rng_base + RNG_CTRL_OFFSET);
 	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
+
+	if (enable)
+		val |= RNG_CTRL_RNG_RBGEN_ENABLE;
+
 	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
+}
+
+static void iproc_rng200_restart(void __iomem *rng_base)
+{
+	uint32_t val;
+
+	iproc_rng200_enable_set(rng_base, false);
 
 	/* Clear all interrupt status */
 	iowrite32(0xFFFFFFFFUL, rng_base + RNG_INT_STATUS_OFFSET);
@@ -82,11 +92,7 @@ static void iproc_rng200_restart(void __iomem *rng_base)
 	val &= ~RBG_SOFT_RESET;
 	iowrite32(val, rng_base + RBG_SOFT_RESET_OFFSET);
 
-	/* Enable RBG */
-	val = ioread32(rng_base + RNG_CTRL_OFFSET);
-	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
-	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
+	iproc_rng200_enable_set(rng_base, true);
 }
 
 static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
@@ -153,13 +159,8 @@ static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
 static int iproc_rng200_init(struct hwrng *rng)
 {
 	struct iproc_rng200_dev *priv = to_rng_priv(rng);
-	uint32_t val;
 
-	/* Setup RNG. */
-	val = ioread32(priv->base + RNG_CTRL_OFFSET);
-	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
-	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
+	iproc_rng200_enable_set(priv->base, true);
 
 	return 0;
 }
@@ -167,12 +168,8 @@ static int iproc_rng200_init(struct hwrng *rng)
 static void iproc_rng200_cleanup(struct hwrng *rng)
 {
 	struct iproc_rng200_dev *priv = to_rng_priv(rng);
-	uint32_t val;
 
-	/* Disable RNG hardware */
-	val = ioread32(priv->base + RNG_CTRL_OFFSET);
-	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
-	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
+	iproc_rng200_enable_set(priv->base, false);
 }
 
 static int iproc_rng200_probe(struct platform_device *pdev)
-- 
2.29.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
  2020-12-18 10:57 ` matthias.bgg
@ 2020-12-18 17:30   ` Scott Branden
  -1 siblings, 0 replies; 14+ messages in thread
From: Scott Branden @ 2020-12-18 17:30 UTC (permalink / raw)
  To: matthias.bgg, mpm, herbert, rjui, sbranden, f.fainelli
  Cc: linux-kernel, Julia.Lawall, bcm-kernel-feedback-list,
	linux-arm-kernel, nsaenzjulienne, linux-crypto, Matthias Brugger



On 2020-12-18 2:57 a.m., matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
>
> When trying to disable the block we bitwise or the control
> register with value zero. This is confusing as using bitwise or with
> value zero doesn't have any effect at all. Drop this as we already set
> the enable bit to zero by appling inverted RNG_RBGEN_MASK.
>
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
>
> ---
>
> Changes in v2:
> - fix commit message, dropping Fixes tag
> - drop inverted RNT_RBGEN_ENABLE in disable case
>
>  drivers/char/hw_random/iproc-rng200.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
> index 01583faf9893..70cd818a0f31 100644
> --- a/drivers/char/hw_random/iproc-rng200.c
> +++ b/drivers/char/hw_random/iproc-rng200.c
> @@ -28,7 +28,6 @@
>  #define RNG_CTRL_OFFSET					0x00
>  #define RNG_CTRL_RNG_RBGEN_MASK				0x00001FFF
>  #define RNG_CTRL_RNG_RBGEN_ENABLE			0x00000001
> -#define RNG_CTRL_RNG_RBGEN_DISABLE			0x00000000
>  
>  #define RNG_SOFT_RESET_OFFSET				0x04
>  #define RNG_SOFT_RESET					0x00000001
> @@ -61,7 +60,6 @@ static void iproc_rng200_restart(void __iomem *rng_base)
>  	/* Disable RBG */
>  	val = ioread32(rng_base + RNG_CTRL_OFFSET);
>  	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
>  	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
>  
>  	/* Clear all interrupt status */
> @@ -174,7 +172,6 @@ static void iproc_rng200_cleanup(struct hwrng *rng)
>  	/* Disable RNG hardware */
>  	val = ioread32(priv->base + RNG_CTRL_OFFSET);
>  	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
>  	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
>  }
>  


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
@ 2020-12-18 17:30   ` Scott Branden
  0 siblings, 0 replies; 14+ messages in thread
From: Scott Branden @ 2020-12-18 17:30 UTC (permalink / raw)
  To: matthias.bgg, mpm, herbert, rjui, sbranden, f.fainelli
  Cc: Matthias Brugger, linux-kernel, Julia.Lawall,
	bcm-kernel-feedback-list, linux-arm-kernel, nsaenzjulienne,
	linux-crypto



On 2020-12-18 2:57 a.m., matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
>
> When trying to disable the block we bitwise or the control
> register with value zero. This is confusing as using bitwise or with
> value zero doesn't have any effect at all. Drop this as we already set
> the enable bit to zero by appling inverted RNG_RBGEN_MASK.
>
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
>
> ---
>
> Changes in v2:
> - fix commit message, dropping Fixes tag
> - drop inverted RNT_RBGEN_ENABLE in disable case
>
>  drivers/char/hw_random/iproc-rng200.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
> index 01583faf9893..70cd818a0f31 100644
> --- a/drivers/char/hw_random/iproc-rng200.c
> +++ b/drivers/char/hw_random/iproc-rng200.c
> @@ -28,7 +28,6 @@
>  #define RNG_CTRL_OFFSET					0x00
>  #define RNG_CTRL_RNG_RBGEN_MASK				0x00001FFF
>  #define RNG_CTRL_RNG_RBGEN_ENABLE			0x00000001
> -#define RNG_CTRL_RNG_RBGEN_DISABLE			0x00000000
>  
>  #define RNG_SOFT_RESET_OFFSET				0x04
>  #define RNG_SOFT_RESET					0x00000001
> @@ -61,7 +60,6 @@ static void iproc_rng200_restart(void __iomem *rng_base)
>  	/* Disable RBG */
>  	val = ioread32(rng_base + RNG_CTRL_OFFSET);
>  	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
>  	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
>  
>  	/* Clear all interrupt status */
> @@ -174,7 +172,6 @@ static void iproc_rng200_cleanup(struct hwrng *rng)
>  	/* Disable RNG hardware */
>  	val = ioread32(priv->base + RNG_CTRL_OFFSET);
>  	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_DISABLE;
>  	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
>  }
>  


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/2] hwrng: iproc-rng200: Move enable/disable in separate function
  2020-12-18 10:57   ` matthias.bgg
@ 2020-12-18 17:32     ` Scott Branden
  -1 siblings, 0 replies; 14+ messages in thread
From: Scott Branden @ 2020-12-18 17:32 UTC (permalink / raw)
  To: matthias.bgg, mpm, herbert, rjui, sbranden, f.fainelli
  Cc: linux-kernel, Julia.Lawall, bcm-kernel-feedback-list,
	linux-arm-kernel, nsaenzjulienne, linux-crypto, Matthias Brugger



On 2020-12-18 2:57 a.m., matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
>
> We are calling the same code for enable and disable the block in various
> parts of the driver. Put that code into a new function to reduce code
> duplication.
>
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
>
> ---
>
> Changes in v2:
> - rename function to iproc_rng200_enable_set()
> - use u32 value instead of uint32_t
>
>  drivers/char/hw_random/iproc-rng200.c | 35 ++++++++++++---------------
>  1 file changed, 16 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
> index 70cd818a0f31..a43743887db1 100644
> --- a/drivers/char/hw_random/iproc-rng200.c
> +++ b/drivers/char/hw_random/iproc-rng200.c
> @@ -53,14 +53,24 @@ struct iproc_rng200_dev {
>  
>  #define to_rng_priv(rng)	container_of(rng, struct iproc_rng200_dev, rng)
>  
> -static void iproc_rng200_restart(void __iomem *rng_base)
> +static void iproc_rng200_enable_set(void __iomem *rng_base, bool enable)
>  {
> -	uint32_t val;
> +	u32 val;
>  
> -	/* Disable RBG */
>  	val = ioread32(rng_base + RNG_CTRL_OFFSET);
>  	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> +
> +	if (enable)
> +		val |= RNG_CTRL_RNG_RBGEN_ENABLE;
> +
>  	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
> +}
> +
> +static void iproc_rng200_restart(void __iomem *rng_base)
> +{
> +	uint32_t val;
> +
> +	iproc_rng200_enable_set(rng_base, false);
>  
>  	/* Clear all interrupt status */
>  	iowrite32(0xFFFFFFFFUL, rng_base + RNG_INT_STATUS_OFFSET);
> @@ -82,11 +92,7 @@ static void iproc_rng200_restart(void __iomem *rng_base)
>  	val &= ~RBG_SOFT_RESET;
>  	iowrite32(val, rng_base + RBG_SOFT_RESET_OFFSET);
>  
> -	/* Enable RBG */
> -	val = ioread32(rng_base + RNG_CTRL_OFFSET);
> -	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
> -	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
> +	iproc_rng200_enable_set(rng_base, true);
>  }
>  
>  static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
> @@ -153,13 +159,8 @@ static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
>  static int iproc_rng200_init(struct hwrng *rng)
>  {
>  	struct iproc_rng200_dev *priv = to_rng_priv(rng);
> -	uint32_t val;
>  
> -	/* Setup RNG. */
> -	val = ioread32(priv->base + RNG_CTRL_OFFSET);
> -	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
> -	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
> +	iproc_rng200_enable_set(priv->base, true);
>  
>  	return 0;
>  }
> @@ -167,12 +168,8 @@ static int iproc_rng200_init(struct hwrng *rng)
>  static void iproc_rng200_cleanup(struct hwrng *rng)
>  {
>  	struct iproc_rng200_dev *priv = to_rng_priv(rng);
> -	uint32_t val;
>  
> -	/* Disable RNG hardware */
> -	val = ioread32(priv->base + RNG_CTRL_OFFSET);
> -	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
> +	iproc_rng200_enable_set(priv->base, false);
>  }
>  
>  static int iproc_rng200_probe(struct platform_device *pdev)


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/2] hwrng: iproc-rng200: Move enable/disable in separate function
@ 2020-12-18 17:32     ` Scott Branden
  0 siblings, 0 replies; 14+ messages in thread
From: Scott Branden @ 2020-12-18 17:32 UTC (permalink / raw)
  To: matthias.bgg, mpm, herbert, rjui, sbranden, f.fainelli
  Cc: Matthias Brugger, linux-kernel, Julia.Lawall,
	bcm-kernel-feedback-list, linux-arm-kernel, nsaenzjulienne,
	linux-crypto



On 2020-12-18 2:57 a.m., matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
>
> We are calling the same code for enable and disable the block in various
> parts of the driver. Put that code into a new function to reduce code
> duplication.
>
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
>
> ---
>
> Changes in v2:
> - rename function to iproc_rng200_enable_set()
> - use u32 value instead of uint32_t
>
>  drivers/char/hw_random/iproc-rng200.c | 35 ++++++++++++---------------
>  1 file changed, 16 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/char/hw_random/iproc-rng200.c b/drivers/char/hw_random/iproc-rng200.c
> index 70cd818a0f31..a43743887db1 100644
> --- a/drivers/char/hw_random/iproc-rng200.c
> +++ b/drivers/char/hw_random/iproc-rng200.c
> @@ -53,14 +53,24 @@ struct iproc_rng200_dev {
>  
>  #define to_rng_priv(rng)	container_of(rng, struct iproc_rng200_dev, rng)
>  
> -static void iproc_rng200_restart(void __iomem *rng_base)
> +static void iproc_rng200_enable_set(void __iomem *rng_base, bool enable)
>  {
> -	uint32_t val;
> +	u32 val;
>  
> -	/* Disable RBG */
>  	val = ioread32(rng_base + RNG_CTRL_OFFSET);
>  	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> +
> +	if (enable)
> +		val |= RNG_CTRL_RNG_RBGEN_ENABLE;
> +
>  	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
> +}
> +
> +static void iproc_rng200_restart(void __iomem *rng_base)
> +{
> +	uint32_t val;
> +
> +	iproc_rng200_enable_set(rng_base, false);
>  
>  	/* Clear all interrupt status */
>  	iowrite32(0xFFFFFFFFUL, rng_base + RNG_INT_STATUS_OFFSET);
> @@ -82,11 +92,7 @@ static void iproc_rng200_restart(void __iomem *rng_base)
>  	val &= ~RBG_SOFT_RESET;
>  	iowrite32(val, rng_base + RBG_SOFT_RESET_OFFSET);
>  
> -	/* Enable RBG */
> -	val = ioread32(rng_base + RNG_CTRL_OFFSET);
> -	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
> -	iowrite32(val, rng_base + RNG_CTRL_OFFSET);
> +	iproc_rng200_enable_set(rng_base, true);
>  }
>  
>  static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
> @@ -153,13 +159,8 @@ static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max,
>  static int iproc_rng200_init(struct hwrng *rng)
>  {
>  	struct iproc_rng200_dev *priv = to_rng_priv(rng);
> -	uint32_t val;
>  
> -	/* Setup RNG. */
> -	val = ioread32(priv->base + RNG_CTRL_OFFSET);
> -	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	val |= RNG_CTRL_RNG_RBGEN_ENABLE;
> -	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
> +	iproc_rng200_enable_set(priv->base, true);
>  
>  	return 0;
>  }
> @@ -167,12 +168,8 @@ static int iproc_rng200_init(struct hwrng *rng)
>  static void iproc_rng200_cleanup(struct hwrng *rng)
>  {
>  	struct iproc_rng200_dev *priv = to_rng_priv(rng);
> -	uint32_t val;
>  
> -	/* Disable RNG hardware */
> -	val = ioread32(priv->base + RNG_CTRL_OFFSET);
> -	val &= ~RNG_CTRL_RNG_RBGEN_MASK;
> -	iowrite32(val, priv->base + RNG_CTRL_OFFSET);
> +	iproc_rng200_enable_set(priv->base, false);
>  }
>  
>  static int iproc_rng200_probe(struct platform_device *pdev)


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
  2020-12-18 10:57 ` matthias.bgg
@ 2020-12-18 17:34   ` Florian Fainelli
  -1 siblings, 0 replies; 14+ messages in thread
From: Florian Fainelli @ 2020-12-18 17:34 UTC (permalink / raw)
  To: matthias.bgg, mpm, herbert, rjui, sbranden
  Cc: linux-kernel, Julia.Lawall, bcm-kernel-feedback-list,
	linux-arm-kernel, nsaenzjulienne, linux-crypto, Matthias Brugger

On 12/18/20 2:57 AM, matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
> 
> When trying to disable the block we bitwise or the control
> register with value zero. This is confusing as using bitwise or with
> value zero doesn't have any effect at all. Drop this as we already set
> the enable bit to zero by appling inverted RNG_RBGEN_MASK.
> 
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
@ 2020-12-18 17:34   ` Florian Fainelli
  0 siblings, 0 replies; 14+ messages in thread
From: Florian Fainelli @ 2020-12-18 17:34 UTC (permalink / raw)
  To: matthias.bgg, mpm, herbert, rjui, sbranden
  Cc: Matthias Brugger, linux-kernel, Julia.Lawall,
	bcm-kernel-feedback-list, linux-arm-kernel, nsaenzjulienne,
	linux-crypto

On 12/18/20 2:57 AM, matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
> 
> When trying to disable the block we bitwise or the control
> register with value zero. This is confusing as using bitwise or with
> value zero doesn't have any effect at all. Drop this as we already set
> the enable bit to zero by appling inverted RNG_RBGEN_MASK.
> 
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
  2020-12-18 10:57 ` matthias.bgg
@ 2021-01-02 22:08   ` Herbert Xu
  -1 siblings, 0 replies; 14+ messages in thread
From: Herbert Xu @ 2021-01-02 22:08 UTC (permalink / raw)
  To: matthias.bgg
  Cc: mpm, rjui, sbranden, f.fainelli, linux-kernel, Julia.Lawall,
	bcm-kernel-feedback-list, linux-arm-kernel, nsaenzjulienne,
	linux-crypto, Matthias Brugger

On Fri, Dec 18, 2020 at 11:57:07AM +0100, matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
> 
> When trying to disable the block we bitwise or the control
> register with value zero. This is confusing as using bitwise or with
> value zero doesn't have any effect at all. Drop this as we already set
> the enable bit to zero by appling inverted RNG_RBGEN_MASK.
> 
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
> 
> ---
> 
> Changes in v2:
> - fix commit message, dropping Fixes tag
> - drop inverted RNT_RBGEN_ENABLE in disable case
> 
>  drivers/char/hw_random/iproc-rng200.c | 3 ---
>  1 file changed, 3 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block.
@ 2021-01-02 22:08   ` Herbert Xu
  0 siblings, 0 replies; 14+ messages in thread
From: Herbert Xu @ 2021-01-02 22:08 UTC (permalink / raw)
  To: matthias.bgg
  Cc: f.fainelli, sbranden, rjui, linux-kernel, Julia.Lawall,
	Matthias Brugger, bcm-kernel-feedback-list, nsaenzjulienne, mpm,
	linux-arm-kernel, linux-crypto

On Fri, Dec 18, 2020 at 11:57:07AM +0100, matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
> 
> When trying to disable the block we bitwise or the control
> register with value zero. This is confusing as using bitwise or with
> value zero doesn't have any effect at all. Drop this as we already set
> the enable bit to zero by appling inverted RNG_RBGEN_MASK.
> 
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
> 
> ---
> 
> Changes in v2:
> - fix commit message, dropping Fixes tag
> - drop inverted RNT_RBGEN_ENABLE in disable case
> 
>  drivers/char/hw_random/iproc-rng200.c | 3 ---
>  1 file changed, 3 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/2] hwrng: iproc-rng200: Move enable/disable in separate function
  2020-12-18 10:57   ` matthias.bgg
@ 2021-01-02 22:08     ` Herbert Xu
  -1 siblings, 0 replies; 14+ messages in thread
From: Herbert Xu @ 2021-01-02 22:08 UTC (permalink / raw)
  To: matthias.bgg
  Cc: mpm, rjui, sbranden, f.fainelli, linux-kernel, Julia.Lawall,
	bcm-kernel-feedback-list, linux-arm-kernel, nsaenzjulienne,
	linux-crypto, Matthias Brugger

On Fri, Dec 18, 2020 at 11:57:08AM +0100, matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
> 
> We are calling the same code for enable and disable the block in various
> parts of the driver. Put that code into a new function to reduce code
> duplication.
> 
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
> 
> ---
> 
> Changes in v2:
> - rename function to iproc_rng200_enable_set()
> - use u32 value instead of uint32_t
> 
>  drivers/char/hw_random/iproc-rng200.c | 35 ++++++++++++---------------
>  1 file changed, 16 insertions(+), 19 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/2] hwrng: iproc-rng200: Move enable/disable in separate function
@ 2021-01-02 22:08     ` Herbert Xu
  0 siblings, 0 replies; 14+ messages in thread
From: Herbert Xu @ 2021-01-02 22:08 UTC (permalink / raw)
  To: matthias.bgg
  Cc: f.fainelli, sbranden, rjui, linux-kernel, Julia.Lawall,
	Matthias Brugger, bcm-kernel-feedback-list, nsaenzjulienne, mpm,
	linux-arm-kernel, linux-crypto

On Fri, Dec 18, 2020 at 11:57:08AM +0100, matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
> 
> We are calling the same code for enable and disable the block in various
> parts of the driver. Put that code into a new function to reduce code
> duplication.
> 
> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
> 
> ---
> 
> Changes in v2:
> - rename function to iproc_rng200_enable_set()
> - use u32 value instead of uint32_t
> 
>  drivers/char/hw_random/iproc-rng200.c | 35 ++++++++++++---------------
>  1 file changed, 16 insertions(+), 19 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-01-02 22:10 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-18 10:57 [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block matthias.bgg
2020-12-18 10:57 ` matthias.bgg
2020-12-18 10:57 ` [PATCH v2 2/2] hwrng: iproc-rng200: Move enable/disable in separate function matthias.bgg
2020-12-18 10:57   ` matthias.bgg
2020-12-18 17:32   ` Scott Branden
2020-12-18 17:32     ` Scott Branden
2021-01-02 22:08   ` Herbert Xu
2021-01-02 22:08     ` Herbert Xu
2020-12-18 17:30 ` [PATCH v2 1/2] hwrng: iproc-rng200: Fix disable of the block Scott Branden
2020-12-18 17:30   ` Scott Branden
2020-12-18 17:34 ` Florian Fainelli
2020-12-18 17:34   ` Florian Fainelli
2021-01-02 22:08 ` Herbert Xu
2021-01-02 22:08   ` Herbert Xu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.