ARM: OMAP2+: Fix regression for using local timer on non-SMP SoCs
authorTony Lindgren <tony@atomide.com>
Thu, 28 May 2020 15:54:53 +0000 (08:54 -0700)
committerArnd Bergmann <arnd@arndb.de>
Thu, 28 May 2020 20:50:27 +0000 (22:50 +0200)
commitd86ad463d6706d35167418660ae3293207ee9d1c
treef9cdb4071b55b8e34e764d6d502e3a2a853e575e
parent5f55f1fb187ddb7d58bc01a68b93a5e109730378
ARM: OMAP2+: Fix regression for using local timer on non-SMP SoCs

On am437x we use also an ARM timer in addition to the dmtimer. As am437x
is not an SMP SoC, we need tick_broadcast() implemented. With the recent
dmtimer changes, Arnd started to see link failures for non-SMP am437x
configuration:

kernel/time/tick-broadcast.o: in function `tick_device_uses_broadcast':
tick-broadcast.c:(.text+0x130): undefined reference to `tick_broadcast'

Let's fix the issue by reverting dmtimer related changes that started
building timer.c only for CONFIG_SOC_HAS_REALTIME_COUNTER. We still
always need timer.c built-in for omap5 and dra7 for timer_probe().

And let's also move am437x tick_broadcast() to board-generic.c as
that's where we now call timer_probe() for am437x. This way we avoid
adding back more ifdefs to timer.c.

Fixes: 2ee04b88547a ("ARM: OMAP2+: Drop old timer code for dmtimer and 32k counter")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/timer.c