[PATCH] ARM: OMAP3: hwmod: fix variant registration and remove SmartReflex from common list

Paul Walmsley paul at pwsan.com
Thu Oct 6 16:39:28 EDT 2011


Commit d6504acd2125984c61dce24727dd3842d0144015 ("OMAP2+: hwmod:
remove OMAP_CHIP*") tests the inverse condition of what it should be
testing for the return value from omap_hwmod_register().  This causes
several IP blocks to not be registered on several OMAP3 family devices.

Fixing that bug also unmasked another bug, originally reported by
Chase Maupin <chase.maupin at ti.com> and then subsequently by Abhilash K
V <abhilash.kv at ti.com>, which caused SmartReflex IP blocks to be
registered on SoCs that don't support them.

Signed-off-by: Paul Walmsley <paul at pwsan.com>
Cc: Chase Maupin <chase.maupin at ti.com>
Cc: Abhilash K V <abhilash.kv at ti.com>
---

This fixes a pretty embarrassing "brown paper bag" bug of mine in one of 
the cleanup patches.  Tony, it would be good if you could send this to 
Arnd ASAP and merge into your cleanup branch.  Tested on 3430SDP, 37XX 
EVM, and OMAP3503.

 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index ab35acb..53b6706 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -13,6 +13,8 @@
  *
  * XXX these should be marked initdata for multi-OMAP kernels
  */
+#include <linux/err.h>
+
 #include <plat/omap_hwmod.h>
 #include <mach/irqs.h>
 #include <plat/cpu.h>
@@ -3161,8 +3163,6 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
 	&omap3xxx_i2c1_hwmod,
 	&omap3xxx_i2c2_hwmod,
 	&omap3xxx_i2c3_hwmod,
-	&omap34xx_sr1_hwmod,
-	&omap34xx_sr2_hwmod,
 
 	/* gpio class */
 	&omap3xxx_gpio1_hwmod,
@@ -3240,7 +3240,7 @@ int __init omap3xxx_hwmod_init(void)
 
 	/* Register hwmods common to all OMAP3 */
 	r = omap_hwmod_register(omap3xxx_hwmods);
-	if (!r)
+	if (IS_ERR_VALUE(r))
 		return r;
 
 	rev = omap_rev();
@@ -3265,7 +3265,7 @@ int __init omap3xxx_hwmod_init(void)
 	};
 
 	r = omap_hwmod_register(h);
-	if (!r)
+	if (IS_ERR_VALUE(r))
 		return r;
 
 	/*
-- 
1.7.6.3




More information about the linux-arm-kernel mailing list