[PATCH 1/2] ARM: omap: cpuidle34xx: balance cpu_pm_enter/exit()
Andreas Kemnade
andreas at kemnade.info
Wed Oct 28 13:27:18 PDT 2026
On Wed, 28 Oct 2026 20:15:11 +0100
Andreas Kemnade <andreas at kemnade.info> wrote:
> These calls are usually done in a balanced way, so allow notifiers to
> assume that these calls are balanced under all circumstances.
> Seen some spurios vfp issues probably connected to this.
>
> Signed-off-by: Andreas Kemnade <andreas at kemnade.info>
Looked again at some discussions with Sicelo testing such things:
He had observed a NEON off count 1 but MPU 0 in /sys/kernel/debug/pm_debug/count.
Probably more involved, but lets not freak out things here.
So that is definitively a real problem fixed by this. vfp_pm_resume()
would not be called to restore the state without a patch like this.
So this is
Fixes: 1cd96478cf150 ("ARM: OMAP3xxx: CPUIdle: optimize __omap3_enter_idle()")
> ---
> arch/arm/mach-omap2/cpuidle34xx.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
> index 2ab5dcbfb7f6..e42dcf8c03a3 100644
> --- a/arch/arm/mach-omap2/cpuidle34xx.c
> +++ b/arch/arm/mach-omap2/cpuidle34xx.c
> @@ -139,8 +139,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
> * Call idle CPU PM enter notifier chain to restore
> * VFP context.
> */
> - if (cx->mpu_state == PWRDM_POWER_OFF &&
> - pwrdm_read_prev_pwrst(mpu_pd) == PWRDM_POWER_OFF)
> + if (cx->mpu_state == PWRDM_POWER_OFF)
> cpu_pm_exit();
>
> out_clkdm_set:
>
More information about the linux-arm-kernel
mailing list