Skip to contentSkip to conversation

hwrng: reorder OMAP TRNG driver code

PATCH New Olof Johansson 3 participants 3 messages Aug 20, 2013 – Aug 21, 2013

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 drivers/char/hw_random/omap-rng.c |  108 ++++++++++++++++++-------------------
 1 file changed, 54 insertions(+), 54 deletions(-)
drivers/char/hw_random/omap-rng.c +54 -54
index f3f7142..9b89ff4 100644
@@ -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,
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/1 hwrng: reorder OMAP TRNG driver code

Hi Olof,

Quoted 4 lines · Olof Johansson

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

Quoted 8 lines

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.

Regards,
Lokesh

Quoted 147 lines
---
 drivers/char/hw_random/omap-rng.c |  108 ++++++++++++++++++-------------------
 1 file changed, 54 insertions(+), 54 deletions(-)
drivers/char/hw_random/omap-rng.c +54 -54
index f3f7142..9b89ff4 100644
@@ -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,
maintainer
#2 lore raw

PATCH 1/1 hwrng: reorder OMAP TRNG driver code

Quoted 10 lines · Lokesh Vutla

Hi Olof,

Quoted 8 lines · Olof Johansson

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]

Quoted 6 lines
Quoted 4 lines

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.

Patch applied. Thanks!

Signature · 3 lines
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt