• Grygorii Strashko's avatar
    ARM: OMAP2+: am43xx: enable GENERIC_CLOCKEVENTS_BROADCAST · 0b3e6fca
    Grygorii Strashko authored
    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: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    0b3e6fca
timer.c 20.1 KB