diff --git a/drivers/power/pm_changestate.c b/drivers/power/pm_changestate.c index 953c2fac24a..be5786ee421 100644 --- a/drivers/power/pm_changestate.c +++ b/drivers/power/pm_changestate.c @@ -247,7 +247,10 @@ int pm_changestate(int domain, enum pm_state_e newstate) */ pm_changeall(domain, newstate); - g_pmglobals.domain[domain].state = newstate; + if (newstate != PM_RESTORE) + { + g_pmglobals.domain[domain].state = newstate; + } /* Restore the interrupt state */ diff --git a/include/nuttx/power/pm.h b/include/nuttx/power/pm.h index 4a0e3a02a4e..6b0fdb115af 100644 --- a/include/nuttx/power/pm.h +++ b/include/nuttx/power/pm.h @@ -236,6 +236,10 @@ enum pm_state_e { + PM_RESTORE = -1, /* PM_RESTORE is not a low power state. + * + * PM_RESTORE is used to notify for restore from low power state. + */ PM_NORMAL = 0, /* Normal full power operating mode. If the driver is in * a reduced power usage mode, it should immediately re- * initialize for normal operatin.