* [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP
@ 2010-03-09 17:03 Kevin Hilman
2010-03-09 17:04 ` [PATCH/RFT 1/2] OMAP2: cpu_is_omap2*: optimize out unused code Kevin Hilman
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Kevin Hilman @ 2010-03-09 17:03 UTC (permalink / raw)
To: linux-omap
multi-OMAP builds are broken in various ways due to conditional code.
Here is a small series of fixes.
Build tested: omap3_defconfig, omap_4430sdp_defconfig
Boot tested: omap3_defconfig on OMAP3EVM
Needs boot testing on OMAP4.
Applies on current l-o master branch.
Kevin Hilman (2):
OMAP2: cpu_is_omap2*: optimize out unused code.
OMAP4: fix temporary hacks that break multi-omap PM
arch/arm/mach-omap2/io.c | 13 ++++++-------
arch/arm/plat-omap/include/plat/cpu.h | 8 ++++++--
2 files changed, 12 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH/RFT 1/2] OMAP2: cpu_is_omap2*: optimize out unused code. 2010-03-09 17:03 [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Kevin Hilman @ 2010-03-09 17:04 ` Kevin Hilman 2010-03-09 17:04 ` [PATCH/RFT 2/2] OMAP4: fix temporary hacks that break multi-omap PM Kevin Hilman 2010-03-10 6:45 ` [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Shilimkar, Santosh 2 siblings, 0 replies; 6+ messages in thread From: Kevin Hilman @ 2010-03-09 17:04 UTC (permalink / raw) To: linux-omap Currently if omap2420 is defined but not omap2430, cpu_is_omap2430() is still defined as a macro, instead of #define'd to zero. This results in conditional cpu_is_omap2430() code still being compiled, and leads to possible compile/link errors. In particular for hwmod init. To fix, add extra #ifdefs to CPU check macros to ensure that the is_omap* macros are zero for each OMAP2 if they are not configured into the kernel. Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> --- arch/arm/plat-omap/include/plat/cpu.h | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index ed8786c..7514174 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h @@ -167,10 +167,14 @@ IS_OMAP_SUBCLASS(443x, 0x443) #if defined(MULTI_OMAP2) # if defined(CONFIG_ARCH_OMAP2) # undef cpu_is_omap24xx -# undef cpu_is_omap242x -# undef cpu_is_omap243x # define cpu_is_omap24xx() is_omap24xx() +# endif +# if defined (CONFIG_ARCH_OMAP2420) +# undef cpu_is_omap242x # define cpu_is_omap242x() is_omap242x() +# endif +# if defined (CONFIG_ARCH_OMAP2430) +# undef cpu_is_omap243x # define cpu_is_omap243x() is_omap243x() # endif # if defined(CONFIG_ARCH_OMAP3) -- 1.7.0.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH/RFT 2/2] OMAP4: fix temporary hacks that break multi-omap PM 2010-03-09 17:03 [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Kevin Hilman 2010-03-09 17:04 ` [PATCH/RFT 1/2] OMAP2: cpu_is_omap2*: optimize out unused code Kevin Hilman @ 2010-03-09 17:04 ` Kevin Hilman 2010-03-10 6:48 ` Shilimkar, Santosh 2010-03-10 6:45 ` [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Shilimkar, Santosh 2 siblings, 1 reply; 6+ messages in thread From: Kevin Hilman @ 2010-03-09 17:04 UTC (permalink / raw) To: linux-omap When building for multi-omap, and OMAP4 is enabled, CONFIG_ARCH_OMAP4 will be true and prevent included code from building/running for OMAP2/3 as well. This problem exists in io.c where some hwmod/PM/SDRC init code is prevented from running even on OMAP2/3 when OMAP4 is included in a multi-OMAP build. A quick glance suggests that this #ifndef is no longer needed in most of the cases. In the remaining cases, the function is wrapped with "if (cpu_is_omap24xx() || cpu_is_omap34xx())" which will be optimized out for OMAP4-only builds. Note that this is only a short-term fix. Longer-term, OMAP4 needs to create init functions for SDRC and hwmod late-init. Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> --- arch/arm/mach-omap2/io.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 402e8f0..f33409c 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -309,7 +309,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, { pwrdm_init(powerdomains_omap); clkdm_init(clockdomains_omap, clkdm_autodeps); -#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */ if (cpu_is_omap242x()) omap2420_hwmod_init(); else if (cpu_is_omap243x()) @@ -319,7 +318,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, omap2_mux_init(); /* The OPP tables have to be registered before a clk init */ omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps); -#endif if (cpu_is_omap2420()) omap2420_clk_init(); @@ -333,11 +331,12 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, pr_err("Could not init clock framework - unknown CPU\n"); omap_serial_early_init(); -#ifndef CONFIG_ARCH_OMAP4 - omap_hwmod_late_init(); + if (cpu_is_omap24xx() || cpu_is_omap34xx()) /* FIXME: OMAP4 */ + omap_hwmod_late_init(); omap_pm_if_init(); - omap2_sdrc_init(sdrc_cs0, sdrc_cs1); - _omap2_init_reprogram_sdrc(); -#endif + if (cpu_is_omap24xx() || cpu_is_omap34xx()) { /* FIXME: OMAP4 */ + omap2_sdrc_init(sdrc_cs0, sdrc_cs1); + _omap2_init_reprogram_sdrc(); + } gpmc_init(); } -- 1.7.0.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: [PATCH/RFT 2/2] OMAP4: fix temporary hacks that break multi-omap PM 2010-03-09 17:04 ` [PATCH/RFT 2/2] OMAP4: fix temporary hacks that break multi-omap PM Kevin Hilman @ 2010-03-10 6:48 ` Shilimkar, Santosh 0 siblings, 0 replies; 6+ messages in thread From: Shilimkar, Santosh @ 2010-03-10 6:48 UTC (permalink / raw) To: Kevin Hilman, linux-omap@vger.kernel.org > -----Original Message----- > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Kevin > Hilman > Sent: Tuesday, March 09, 2010 10:34 PM > To: linux-omap@vger.kernel.org > Subject: [PATCH/RFT 2/2] OMAP4: fix temporary hacks that break multi-omap PM > > When building for multi-omap, and OMAP4 is enabled, CONFIG_ARCH_OMAP4 > will be true and prevent included code from building/running for > OMAP2/3 as well. > > This problem exists in io.c where some hwmod/PM/SDRC init code is > prevented from running even on OMAP2/3 when OMAP4 is included in a > multi-OMAP build. > > A quick glance suggests that this #ifndef is no longer needed in most > of the cases. In the remaining cases, the function is wrapped with > "if (cpu_is_omap24xx() || cpu_is_omap34xx())" which will be optimized > out for OMAP4-only builds. > > Note that this is only a short-term fix. Longer-term, OMAP4 > needs to create init functions for SDRC and hwmod late-init. > > Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> > --- > arch/arm/mach-omap2/io.c | 13 ++++++------- > 1 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c > index 402e8f0..f33409c 100644 > --- a/arch/arm/mach-omap2/io.c > +++ b/arch/arm/mach-omap2/io.c > @@ -309,7 +309,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, > { > pwrdm_init(powerdomains_omap); > clkdm_init(clockdomains_omap, clkdm_autodeps); > -#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */ > if (cpu_is_omap242x()) > omap2420_hwmod_init(); > else if (cpu_is_omap243x()) > @@ -319,7 +318,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, > omap2_mux_init(); > /* The OPP tables have to be registered before a clk init */ > omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps); > -#endif > > if (cpu_is_omap2420()) > omap2420_clk_init(); > @@ -333,11 +331,12 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, > pr_err("Could not init clock framework - unknown CPU\n"); > > omap_serial_early_init(); > -#ifndef CONFIG_ARCH_OMAP4 > - omap_hwmod_late_init(); > + if (cpu_is_omap24xx() || cpu_is_omap34xx()) /* FIXME: OMAP4 */ This is in pipeline with ongoing hwmod work. > + omap_hwmod_late_init(); > omap_pm_if_init(); > - omap2_sdrc_init(sdrc_cs0, sdrc_cs1); > - _omap2_init_reprogram_sdrc(); > -#endif > + if (cpu_is_omap24xx() || cpu_is_omap34xx()) { /* FIXME: OMAP4 */ This FIXME should be removed because there no SDRC on OMAP4. > + omap2_sdrc_init(sdrc_cs0, sdrc_cs1); > + _omap2_init_reprogram_sdrc(); > + } > gpmc_init(); > } > -- > 1.7.0.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP 2010-03-09 17:03 [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Kevin Hilman 2010-03-09 17:04 ` [PATCH/RFT 1/2] OMAP2: cpu_is_omap2*: optimize out unused code Kevin Hilman 2010-03-09 17:04 ` [PATCH/RFT 2/2] OMAP4: fix temporary hacks that break multi-omap PM Kevin Hilman @ 2010-03-10 6:45 ` Shilimkar, Santosh 2010-03-10 16:22 ` Kevin Hilman 2 siblings, 1 reply; 6+ messages in thread From: Shilimkar, Santosh @ 2010-03-10 6:45 UTC (permalink / raw) To: Kevin Hilman, linux-omap@vger.kernel.org Thanks Kevin, > -----Original Message----- > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Kevin > Hilman > Sent: Tuesday, March 09, 2010 10:34 PM > To: linux-omap@vger.kernel.org > Subject: [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP > > multi-OMAP builds are broken in various ways due to conditional code. > Here is a small series of fixes. > > Build tested: omap3_defconfig, omap_4430sdp_defconfig > Boot tested: omap3_defconfig on OMAP3EVM > Applied this series on l-o master (dc73899a58be5e834b8df3a9049cdb1115acf175) OMAP3430 SDP boots normal. > Needs boot testing on OMAP4. > OMAP4 also boots with omap3_defconfig after unchecking the reset unused clock check. This is known and will be fixed soon. > Applies on current l-o master branch. > > Kevin Hilman (2): > OMAP2: cpu_is_omap2*: optimize out unused code. > OMAP4: fix temporary hacks that break multi-omap PM > > arch/arm/mach-omap2/io.c | 13 ++++++------- > arch/arm/plat-omap/include/plat/cpu.h | 8 ++++++-- > 2 files changed, 12 insertions(+), 9 deletions(-) > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP 2010-03-10 6:45 ` [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Shilimkar, Santosh @ 2010-03-10 16:22 ` Kevin Hilman 0 siblings, 0 replies; 6+ messages in thread From: Kevin Hilman @ 2010-03-10 16:22 UTC (permalink / raw) To: Shilimkar, Santosh; +Cc: linux-omap@vger.kernel.org "Shilimkar, Santosh" <santosh.shilimkar@ti.com> writes: > Thanks Kevin, >> -----Original Message----- >> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Kevin >> Hilman >> Sent: Tuesday, March 09, 2010 10:34 PM >> To: linux-omap@vger.kernel.org >> Subject: [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP >> >> multi-OMAP builds are broken in various ways due to conditional code. >> Here is a small series of fixes. >> >> Build tested: omap3_defconfig, omap_4430sdp_defconfig >> Boot tested: omap3_defconfig on OMAP3EVM >> > Applied this series on l-o master (dc73899a58be5e834b8df3a9049cdb1115acf175) > OMAP3430 SDP boots normal. > >> Needs boot testing on OMAP4. >> > OMAP4 also boots with omap3_defconfig after unchecking the reset > unused clock check. This is known and will be fixed soon. > Santosh, Thanks for testing. Will respin removing the second FIXME you mentioned in PATCH 2. Kevin ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-03-10 16:22 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-03-09 17:03 [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Kevin Hilman 2010-03-09 17:04 ` [PATCH/RFT 1/2] OMAP2: cpu_is_omap2*: optimize out unused code Kevin Hilman 2010-03-09 17:04 ` [PATCH/RFT 2/2] OMAP4: fix temporary hacks that break multi-omap PM Kevin Hilman 2010-03-10 6:48 ` Shilimkar, Santosh 2010-03-10 6:45 ` [PATCH/RFT 0/2] fixes for broken PM init with multi-OMAP Shilimkar, Santosh 2010-03-10 16:22 ` Kevin Hilman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox