From 1bbe9baa29cb87576ed1202e15a5fae193bdc29f Mon Sep 17 00:00:00 2001 From: zhuguangqing Date: Mon, 27 Aug 2018 13:26:33 -0600 Subject: [PATCH] drivers/pm: PM: Add PM_RESTORE to notify driver that device exit WFI so the driver could restore state. For example, WDT may stop counting before enter low power state and restore the counting agian in PM_RESTORE notification --- drivers/power/pm_changestate.c | 5 ++++- include/nuttx/power/pm.h | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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.