b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -269,10 +269,16 @@ int omap4_mpuss_enter_lowpower(unsigned int cpu,
u8 fpwrst)
* domain transition
*/
wakeup_cpu = smp_processor_id();
- WARN_ON(pwrdm_set_next_fpwrst(pm_info->pwrdm, PWRDM_FUNC_PWRST_ON));
+ /*
+ * Due to optimizations to the code, pwrdm_post_transition
+ * must be called prior to resetting cpu0 pwrst to ON,
+ * otherwise cpu0 powerstate statistics don't update properly
+ */
pwrdm_post_transition(NULL);
+ WARN_ON(pwrdm_set_next_fpwrst(pm_info->pwrdm, PWRDM_FUNC_PWRST_ON));
+
return 0;
}