2013-08-20 18:07:53

by Olof Johansson

[permalink] [raw]
Subject: [PATCH] hwrng: reorder OMAP TRNG driver code

The newly added omap4 support in the driver was added without
consideration for building older configs. When building omap1_defconfig,
it resulted in:

drivers/char/hw_random/omap-rng.c:190:12: warning: 'omap4_rng_init' defined but not used [-Wunused-function]
drivers/char/hw_random/omap-rng.c:215:13: warning: 'omap4_rng_cleanup' defined but not used [-Wunused-function]
drivers/char/hw_random/omap-rng.c:251:20: warning: 'omap4_rng_irq' defined but not used [-Wunused-function]

Move the code around so it is grouped with its operations struct, which
for the omap4 case means also under the #ifdef CONFIG_OF, where it needs
to be.

Signed-off-by: Olof Johansson <[email protected]>
Cc: Lokesh Vutla <[email protected]>
---
drivers/char/hw_random/omap-rng.c | 108 ++++++++++++++++++-------------------
1 file changed, 54 insertions(+), 54 deletions(-)

diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c
index f3f7142..9b89ff4 100644
--- a/drivers/char/hw_random/omap-rng.c
+++ b/drivers/char/hw_random/omap-rng.c
@@ -140,16 +140,6 @@ static inline void omap_rng_write(struct omap_rng_dev *priv, u16 reg,
__raw_writel(val, priv->base + priv->pdata->regs[reg]);
}

-static inline u32 omap2_rng_data_present(struct omap_rng_dev *priv)
-{
- return omap_rng_read(priv, RNG_STATUS_REG) ? 0 : 1;
-}
-
-static inline u32 omap4_rng_data_present(struct omap_rng_dev *priv)
-{
- return omap_rng_read(priv, RNG_STATUS_REG) & RNG_REG_STATUS_RDY;
-}
-
static int omap_rng_data_present(struct hwrng *rng, int wait)
{
struct omap_rng_dev *priv;
@@ -187,6 +177,60 @@ static int omap_rng_data_read(struct hwrng *rng, u32 *data)
return data_size;
}

+static int omap_rng_init(struct hwrng *rng)
+{
+ struct omap_rng_dev *priv;
+
+ priv = (struct omap_rng_dev *)rng->priv;
+ return priv->pdata->init(priv);
+}
+
+static void omap_rng_cleanup(struct hwrng *rng)
+{
+ struct omap_rng_dev *priv;
+
+ priv = (struct omap_rng_dev *)rng->priv;
+ priv->pdata->cleanup(priv);
+}
+
+static struct hwrng omap_rng_ops = {
+ .name = "omap",
+ .data_present = omap_rng_data_present,
+ .data_read = omap_rng_data_read,
+ .init = omap_rng_init,
+ .cleanup = omap_rng_cleanup,
+};
+
+static inline u32 omap2_rng_data_present(struct omap_rng_dev *priv)
+{
+ return omap_rng_read(priv, RNG_STATUS_REG) ? 0 : 1;
+}
+
+static int omap2_rng_init(struct omap_rng_dev *priv)
+{
+ omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x1);
+ return 0;
+}
+
+static void omap2_rng_cleanup(struct omap_rng_dev *priv)
+{
+ omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x0);
+}
+
+static struct omap_rng_pdata omap2_rng_pdata = {
+ .regs = (u16 *)reg_map_omap2,
+ .data_size = OMAP2_RNG_OUTPUT_SIZE,
+ .data_present = omap2_rng_data_present,
+ .init = omap2_rng_init,
+ .cleanup = omap2_rng_cleanup,
+};
+
+#if defined(CONFIG_OF)
+static inline u32 omap4_rng_data_present(struct omap_rng_dev *priv)
+{
+ return omap_rng_read(priv, RNG_STATUS_REG) & RNG_REG_STATUS_RDY;
+}
+
static int omap4_rng_init(struct omap_rng_dev *priv)
{
u32 val;
@@ -221,33 +265,6 @@ static void omap4_rng_cleanup(struct omap_rng_dev *priv)
omap_rng_write(priv, RNG_CONFIG_REG, val);
}

-static int omap2_rng_init(struct omap_rng_dev *priv)
-{
- omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x1);
- return 0;
-}
-
-static void omap2_rng_cleanup(struct omap_rng_dev *priv)
-{
- omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x0);
-}
-
-static int omap_rng_init(struct hwrng *rng)
-{
- struct omap_rng_dev *priv;
-
- priv = (struct omap_rng_dev *)rng->priv;
- return priv->pdata->init(priv);
-}
-
-static void omap_rng_cleanup(struct hwrng *rng)
-{
- struct omap_rng_dev *priv;
-
- priv = (struct omap_rng_dev *)rng->priv;
- priv->pdata->cleanup(priv);
-}
-
static irqreturn_t omap4_rng_irq(int irq, void *dev_id)
{
struct omap_rng_dev *priv = dev_id;
@@ -275,23 +292,6 @@ static irqreturn_t omap4_rng_irq(int irq, void *dev_id)
return IRQ_HANDLED;
}

-static struct hwrng omap_rng_ops = {
- .name = "omap",
- .data_present = omap_rng_data_present,
- .data_read = omap_rng_data_read,
- .init = omap_rng_init,
- .cleanup = omap_rng_cleanup,
-};
-
-static struct omap_rng_pdata omap2_rng_pdata = {
- .regs = (u16 *)reg_map_omap2,
- .data_size = OMAP2_RNG_OUTPUT_SIZE,
- .data_present = omap2_rng_data_present,
- .init = omap2_rng_init,
- .cleanup = omap2_rng_cleanup,
-};
-
-#if defined(CONFIG_OF)
static struct omap_rng_pdata omap4_rng_pdata = {
.regs = (u16 *)reg_map_omap4,
.data_size = OMAP4_RNG_OUTPUT_SIZE,
--
1.7.10.4



2013-08-21 05:21:16

by Lokesh Vutla

[permalink] [raw]
Subject: Re: [PATCH] hwrng: reorder OMAP TRNG driver code

Hi Olof,
On Tuesday 20 August 2013 11:37 PM, Olof Johansson wrote:
> The newly added omap4 support in the driver was added without
> consideration for building older configs. When building omap1_defconfig,
> it resulted in:
>
> drivers/char/hw_random/omap-rng.c:190:12: warning: 'omap4_rng_init' defined but not used [-Wunused-function]
> drivers/char/hw_random/omap-rng.c:215:13: warning: 'omap4_rng_cleanup' defined but not used [-Wunused-function]
> drivers/char/hw_random/omap-rng.c:251:20: warning: 'omap4_rng_irq' defined but not used [-Wunused-function]
>
> Move the code around so it is grouped with its operations struct, which
> for the omap4 case means also under the #ifdef CONFIG_OF, where it needs
> to be.
>
Missed testing this. Thanks for the patch.
Reviewed-by: Lokesh Vutla <[email protected]>

Regards,
Lokesh

> Signed-off-by: Olof Johansson <[email protected]>
> Cc: Lokesh Vutla <[email protected]>
> ---
> drivers/char/hw_random/omap-rng.c | 108 ++++++++++++++++++-------------------
> 1 file changed, 54 insertions(+), 54 deletions(-)
>
> diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c
> index f3f7142..9b89ff4 100644
> --- a/drivers/char/hw_random/omap-rng.c
> +++ b/drivers/char/hw_random/omap-rng.c
> @@ -140,16 +140,6 @@ static inline void omap_rng_write(struct omap_rng_dev *priv, u16 reg,
> __raw_writel(val, priv->base + priv->pdata->regs[reg]);
> }
>
> -static inline u32 omap2_rng_data_present(struct omap_rng_dev *priv)
> -{
> - return omap_rng_read(priv, RNG_STATUS_REG) ? 0 : 1;
> -}
> -
> -static inline u32 omap4_rng_data_present(struct omap_rng_dev *priv)
> -{
> - return omap_rng_read(priv, RNG_STATUS_REG) & RNG_REG_STATUS_RDY;
> -}
> -
> static int omap_rng_data_present(struct hwrng *rng, int wait)
> {
> struct omap_rng_dev *priv;
> @@ -187,6 +177,60 @@ static int omap_rng_data_read(struct hwrng *rng, u32 *data)
> return data_size;
> }
>
> +static int omap_rng_init(struct hwrng *rng)
> +{
> + struct omap_rng_dev *priv;
> +
> + priv = (struct omap_rng_dev *)rng->priv;
> + return priv->pdata->init(priv);
> +}
> +
> +static void omap_rng_cleanup(struct hwrng *rng)
> +{
> + struct omap_rng_dev *priv;
> +
> + priv = (struct omap_rng_dev *)rng->priv;
> + priv->pdata->cleanup(priv);
> +}
> +
> +static struct hwrng omap_rng_ops = {
> + .name = "omap",
> + .data_present = omap_rng_data_present,
> + .data_read = omap_rng_data_read,
> + .init = omap_rng_init,
> + .cleanup = omap_rng_cleanup,
> +};
> +
> +static inline u32 omap2_rng_data_present(struct omap_rng_dev *priv)
> +{
> + return omap_rng_read(priv, RNG_STATUS_REG) ? 0 : 1;
> +}
> +
> +static int omap2_rng_init(struct omap_rng_dev *priv)
> +{
> + omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x1);
> + return 0;
> +}
> +
> +static void omap2_rng_cleanup(struct omap_rng_dev *priv)
> +{
> + omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x0);
> +}
> +
> +static struct omap_rng_pdata omap2_rng_pdata = {
> + .regs = (u16 *)reg_map_omap2,
> + .data_size = OMAP2_RNG_OUTPUT_SIZE,
> + .data_present = omap2_rng_data_present,
> + .init = omap2_rng_init,
> + .cleanup = omap2_rng_cleanup,
> +};
> +
> +#if defined(CONFIG_OF)
> +static inline u32 omap4_rng_data_present(struct omap_rng_dev *priv)
> +{
> + return omap_rng_read(priv, RNG_STATUS_REG) & RNG_REG_STATUS_RDY;
> +}
> +
> static int omap4_rng_init(struct omap_rng_dev *priv)
> {
> u32 val;
> @@ -221,33 +265,6 @@ static void omap4_rng_cleanup(struct omap_rng_dev *priv)
> omap_rng_write(priv, RNG_CONFIG_REG, val);
> }
>
> -static int omap2_rng_init(struct omap_rng_dev *priv)
> -{
> - omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x1);
> - return 0;
> -}
> -
> -static void omap2_rng_cleanup(struct omap_rng_dev *priv)
> -{
> - omap_rng_write(priv, RNG_SYSCONFIG_REG, 0x0);
> -}
> -
> -static int omap_rng_init(struct hwrng *rng)
> -{
> - struct omap_rng_dev *priv;
> -
> - priv = (struct omap_rng_dev *)rng->priv;
> - return priv->pdata->init(priv);
> -}
> -
> -static void omap_rng_cleanup(struct hwrng *rng)
> -{
> - struct omap_rng_dev *priv;
> -
> - priv = (struct omap_rng_dev *)rng->priv;
> - priv->pdata->cleanup(priv);
> -}
> -
> static irqreturn_t omap4_rng_irq(int irq, void *dev_id)
> {
> struct omap_rng_dev *priv = dev_id;
> @@ -275,23 +292,6 @@ static irqreturn_t omap4_rng_irq(int irq, void *dev_id)
> return IRQ_HANDLED;
> }
>
> -static struct hwrng omap_rng_ops = {
> - .name = "omap",
> - .data_present = omap_rng_data_present,
> - .data_read = omap_rng_data_read,
> - .init = omap_rng_init,
> - .cleanup = omap_rng_cleanup,
> -};
> -
> -static struct omap_rng_pdata omap2_rng_pdata = {
> - .regs = (u16 *)reg_map_omap2,
> - .data_size = OMAP2_RNG_OUTPUT_SIZE,
> - .data_present = omap2_rng_data_present,
> - .init = omap2_rng_init,
> - .cleanup = omap2_rng_cleanup,
> -};
> -
> -#if defined(CONFIG_OF)
> static struct omap_rng_pdata omap4_rng_pdata = {
> .regs = (u16 *)reg_map_omap4,
> .data_size = OMAP4_RNG_OUTPUT_SIZE,
>


2013-08-21 11:51:47

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] hwrng: reorder OMAP TRNG driver code

On Wed, Aug 21, 2013 at 10:51:16AM +0530, Lokesh Vutla wrote:
> Hi Olof,
> On Tuesday 20 August 2013 11:37 PM, Olof Johansson wrote:
> > The newly added omap4 support in the driver was added without
> > consideration for building older configs. When building omap1_defconfig,
> > it resulted in:
> >
> > drivers/char/hw_random/omap-rng.c:190:12: warning: 'omap4_rng_init' defined but not used [-Wunused-function]
> > drivers/char/hw_random/omap-rng.c:215:13: warning: 'omap4_rng_cleanup' defined but not used [-Wunused-function]
> > drivers/char/hw_random/omap-rng.c:251:20: warning: 'omap4_rng_irq' defined but not used [-Wunused-function]
> >
> > Move the code around so it is grouped with its operations struct, which
> > for the omap4 case means also under the #ifdef CONFIG_OF, where it needs
> > to be.
> >
> Missed testing this. Thanks for the patch.
> Reviewed-by: Lokesh Vutla <[email protected]>

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