On 08/01/13 11:34, Stephen Boyd wrote: > On 08/01/13 11:31, Santosh Shilimkar wrote: >> On Thursday 01 August 2013 02:27 PM, Russell King - ARM Linux wrote: >>> On Thu, Aug 01, 2013 at 02:11:18PM -0400, Santosh Shilimkar wrote: >>>> On Thursday 01 August 2013 01:52 PM, Russell King - ARM Linux wrote: >>>>> My allnoconfig fails with this error: >>>>> >>>>> arch/arm/mach-omap2/built-in.o: In function `omap4_local_timer_init': >>>>> dss-common.c:(.init.text+0x1d90): undefined reference to `twd_local_timer_register' >>>>> >>>>> Might be worth looking into whatever's missing? >>>> Looks like coming from below snippet but am just wondering how ? >>> Well, looking at the config allnoconfig generated, it doesn't have SMP >>> and therefore it doesn't have local timers. >>> >>> The build tree has this in it: >>> >>> #ifdef CONFIG_ARCH_OMAP4 >>> static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, OMAP44XX_LOCAL_TWD_BASE, 29); >>> void __init omap4_local_timer_init(void) >>> { >>> omap4_sync32k_timer_init(); >>> /* Local timers are not supprted on OMAP4430 ES1.0 */ >>> if (omap_rev() != OMAP4430_REV_ES1_0) { >>> int err; >>> >>> if (of_have_populated_dt()) { >>> clocksource_of_init(); >>> return; >>> } >>> >>> err = twd_local_timer_register(&twd_local_timer); >>> if (err) >>> pr_err("twd_local_timer_register failed %d\n", err); >>> } >>> } >>> #endif /* CONFIG_ARCH_OMAP4 */ >>> >> Now it make sense. >> >>> which is changed from your version thanks to this commit: >>> >>> commit ef3160cd2f0a400751f2cf6fd2811225fee1d5a7 >>> Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx> >>> Date: Mon Mar 4 19:24:35 2013 -0800 >>> >>> ARM: OMAP2+: Divorce from local timer API >>> >>> Now that the TWD doesn't rely on the local timer API, OMAP can >>> stop selecting it in Kconfig and relying on the config option to >>> decide if it should call smp_twd functions. >>> >>> Acked-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx> >>> Acked-by: Tony Lindgren <tony@xxxxxxxxxxx> >>> Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx> >>> Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx> >>> >>> So it seems LOCAL_TIMER is still actually required... >>> >> yep. Lets see what Stephen has to say. > Hmm.. Looks like you can either wrap this up in a CONFIG_HAVE_ARM_TWD > check or just compile in TWD all the time on omap4. The latter is > simpler but not a direct conversion. Here's the other version (probably whitespace damaged): ---8<---- diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 3b7caba..00dc53e 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -600,6 +600,7 @@ static OMAP_SYS_32K_TIMER_INIT(4, 1, "timer_32k_ck", "ti,timer-alwon", #endif #ifdef CONFIG_ARCH_OMAP4 +#ifdef CONFIG_HAVE_ARM_TWD static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, OMAP44XX_LOCAL_TWD_BASE, 29); void __init omap4_local_timer_init(void) { @@ -618,6 +619,12 @@ void __init omap4_local_timer_init(void) pr_err("twd_local_timer_register failed %d\n", err); } } +#else +void __init omap4_local_timer_init(void) +{ + omap4_sync32k_timer_init(); +} +#endif /* CONFIG_HAVE_ARM_TWD */ #endif /* CONFIG_ARCH_OMAP4 */ #ifdef CONFIG_SOC_OMAP5 > > ---8<---- > > diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig > index 4e0049a..c9e9b2c 100644 > --- a/arch/arm/mach-omap2/Kconfig > +++ b/arch/arm/mach-omap2/Kconfig > @@ -90,7 +90,7 @@ config ARCH_OMAP4 > select CACHE_L2X0 > select CPU_V7 > select HAVE_ARM_SCU if SMP > - select HAVE_ARM_TWD if SMP > + select HAVE_ARM_TWD > select HAVE_SMP > select OMAP_INTERCONNECT > select PL310_ERRATA_588369 > -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -- 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