From mboxrd@z Thu Jan 1 00:00:00 1970 From: sboyd@codeaurora.org (Stephen Boyd) Date: Thu, 01 Aug 2013 11:34:25 -0700 Subject: [FAILURE] omap4430-sdp allnoconfig In-Reply-To: <51FAA985.3000809@ti.com> References: <20130801175214.GA23053@n2100.arm.linux.org.uk> <51FAA4C6.10203@ti.com> <20130801182707.GB23053@n2100.arm.linux.org.uk> <51FAA985.3000809@ti.com> Message-ID: <51FAAA31.6020903@codeaurora.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 >> 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 >> Acked-by: Tony Lindgren >> Acked-by: Marc Zyngier >> Signed-off-by: Stephen Boyd >> >> 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. ---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