ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails
authorTony Lindgren <tony@atomide.com>
Wed, 23 Sep 2020 06:16:22 +0000 (09:16 +0300)
committerTony Lindgren <tony@atomide.com>
Wed, 23 Sep 2020 07:39:33 +0000 (10:39 +0300)
If cpu_cluster_pm_enter() fails, we need to set MPU power domain back
to enabled to prevent the next WFI from potentially triggering an
undesired MPU power domain state change.

We already do this for omap_enter_idle_smp() but are missing it for
omap_enter_idle_coupled().

Fixes: 55be2f50336f ("ARM: OMAP2+: Handle errors for cpu_pm")
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/cpuidle44xx.c

index 6f5f897..a92d277 100644 (file)
@@ -174,8 +174,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
                 */
                if (mpuss_can_lose_context) {
                        error = cpu_cluster_pm_enter();
-                       if (error)
+                       if (error) {
+                               omap_set_pwrdm_state(mpu_pd, PWRDM_POWER_ON);
                                goto cpu_cluster_pm_out;
+                       }
                }
        }