ARM: OMAP2+: am43xx: enable GENERIC_CLOCKEVENTS_BROADCAST
authorGrygorii Strashko <grygorii.strashko@ti.com>
Mon, 14 Dec 2015 20:34:05 +0000 (22:34 +0200)
committerTony Lindgren <tony@atomide.com>
Thu, 17 Dec 2015 18:53:28 +0000 (10:53 -0800)
commit0b3e6fca4d1af4aa150d32506220f4241323a00c
tree4595639d6351eb09d49c578b0baf6dfe84b8f0ef
parent14054fb1da099fd89208b8b319a00e0b902c7645
ARM: OMAP2+: am43xx: enable GENERIC_CLOCKEVENTS_BROADCAST

System will misbehave in the following case:
- AM43XX only build (UP);
- CONFIG_CPU_IDLE=y
- ARM TWD timer enabled and selected as clockevent device.

In the above case, It's expected that broadcast timer will be used as
backup timer when CPUIdle will put MPU in low power states where ARM
TWD will stop and lose its context. But, the CONFIG_SMP might not be
selected when kernel is built for AM43XX SoC only and, as result,
GENERIC_CLOCKEVENTS_BROADCAST option will not be selected also. This
will break CPUIdle and System will stuck in low power states.

Hence, fix it by selecting GENERIC_CLOCKEVENTS_BROADCAST option for
AM43XX SoCs always and add empty tick_broadcast() function
implementation - no need to send any IPI on UP. After this change
timer1 will be selected as broadcast timer the same way as for SMP,
and CPUIdle will work properly.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/timer.c