• Tony Lindgren's avatar
    ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled() · 294a3317
    Tony Lindgren authored
    Based on more testing, commit 8ca5ee624b4c ("ARM: OMAP2+: Restore MPU
    power domain if cpu_cluster_pm_enter() fails") is a poor fix for handling
    cpu_cluster_pm_enter() returned errors.
    
    We should not override the cpuidle states with a hardcoded PWRDM_POWER_ON
    value. Instead, we should use a configured idle state that does not cause
    the context to be lost. Otherwise we end up configuring a potentially
    improper state for the MPUSS. We also want to update the returned state
    index for the selected state.
    
    Let's just select the highest power idle state C1 to ensure no context
    loss is allowed on cpu_cluster_pm_enter() errors. With these changes we
    can now unconditionally call omap4_enter_lowpower() for WFI like we did
    earlier before commit 55be2f50 ("ARM: OMAP2+: Handle errors for
    cpu_pm"). And we can return the selected state index.
    
    Fixes: 8f04aea0 ("ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails")
    Fixes: 55be2f50 ("ARM: OMAP2+: Handle errors for cpu_pm")
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    294a3317
cpuidle44xx.c 7.73 KB