Abhilash K V <abhilash.kv@xxxxxx> writes: > From: Abhilash K V <abhilash.kv@xxxxxx> > > In case of AM3517 & AM3505, SmartReflex is not applicable so > we must not enable it. So omap3_twl_init() is now not called > when the processor does not support SR. This still isn't right. The reason to skip the TWL PMIC init is not because SR is not available (TWL PMICs are quite usable without SR). The reason to skip TWL PMIC init is because the PMIC is not present. Instead, we need to fix up the TWL/PMIC init so that TWL-specifics are only registered if a TWL driver is registered. So, please drop hunk #2 from this patch, and just make this patch add a new feature for the existence of SmartReflex. Removing the assumptions and init for the existence of the TWL is a separate problem. Kevin > Signed-off-by: Vaibhav Hiremath <hvaibhav@xxxxxx> > Signed-off-by: Abhilash K V <abhilash.kv@xxxxxx> > --- > arch/arm/mach-omap2/id.c | 2 +- > arch/arm/mach-omap2/pm.c | 3 ++- > arch/arm/plat-omap/include/plat/cpu.h | 2 ++ > 3 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c > index d27daf9..b7e3082 100644 > --- a/arch/arm/mach-omap2/id.c > +++ b/arch/arm/mach-omap2/id.c > @@ -188,7 +188,7 @@ static void __init omap3_check_features(void) > if (cpu_is_omap3630()) > omap_features |= OMAP3_HAS_192MHZ_CLK; > if (!cpu_is_omap3505() && !cpu_is_omap3517()) > - omap_features |= OMAP3_HAS_IO_WAKEUP; > + omap_features |= (OMAP3_HAS_IO_WAKEUP | OMAP3_HAS_SR); > > omap_features |= OMAP3_HAS_SDRC; > > diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c > index 0844e2e..6835198 100644 > --- a/arch/arm/mach-omap2/pm.c > +++ b/arch/arm/mach-omap2/pm.c > @@ -250,7 +250,8 @@ postcore_initcall(omap2_common_pm_init); > static int __init omap2_common_pm_late_init(void) > { > /* Init the OMAP TWL parameters */ > - omap3_twl_init(); > + if (omap3_has_sr()) > + omap3_twl_init(); > omap4_twl_init(); > > /* Init the voltage layer */ > diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h > index 2f90269..cc6fcd3 100644 > --- a/arch/arm/plat-omap/include/plat/cpu.h > +++ b/arch/arm/plat-omap/include/plat/cpu.h > @@ -413,6 +413,7 @@ extern u32 omap_features; > #define OMAP4_HAS_MPU_1GHZ BIT(8) > #define OMAP4_HAS_MPU_1_2GHZ BIT(9) > #define OMAP4_HAS_MPU_1_5GHZ BIT(10) > +#define OMAP3_HAS_SR BIT(11) > > > #define OMAP3_HAS_FEATURE(feat,flag) \ > @@ -429,6 +430,7 @@ OMAP3_HAS_FEATURE(isp, ISP) > OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK) > OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP) > OMAP3_HAS_FEATURE(sdrc, SDRC) > +OMAP3_HAS_FEATURE(sr, SR) > > /* > * Runtime detection of OMAP4 features -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html