• Paul Walmsley's avatar
    ARM: OMAP3xxx: CPUIdle: optimize __omap3_enter_idle() · 1cd96478
    Paul Walmsley authored
    Avoid programming the MPU and CORE powerdomain next-power-state
    registers if those powerdomains will never enter low-power states
    (e.g., the state that people refer to as "C1").
    
    To avoid making assumptions about CPUIdle states based on their order
    in the list, use a flag to mark CPUIdle states that don't enter
    powerdomain low-power states.
    
    Avoid a previous-power-state register read on the MPU powerdomain
    unless we know that the MPU was supposed to go OFF during the last
    state transition.  Previous-power-state register reads can be very
    expensive, so it's worth avoiding these when possible.
    
    Since the CORE_L3 clockdomain can't go inactive unless the MPU is active,
    there's little point blocking autoidle on the CORE_L3 clockdomain in "C1"
    state, since we've programmed the MPU clockdomain to stay active.
    Remove the unnecessary code.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Kevin Hilman <khilman@deeprootsystems.com>
    1cd96478
cpuidle34xx.c 9.34 KB