summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorarmink <[email protected]>2018-10-29 19:02:31 +0800
committerarmink <[email protected]>2018-10-29 19:02:31 +0800
commitf05baecc5a1b35177edcaae3d09c6f9c38819b93 (patch)
tree0043fbcf210fee41ba65193fca39c850ac9ed6ad /components
parent2d59fe031038e94dd626f3b172653bcb9bab9a2d (diff)
[DeviceDriver][pm] Update pm driver.
Diffstat (limited to 'components')
-rw-r--r--components/drivers/pm/pm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/components/drivers/pm/pm.c b/components/drivers/pm/pm.c
index bd8a0a5e95..655c4b4c02 100644
--- a/components/drivers/pm/pm.c
+++ b/components/drivers/pm/pm.c
@@ -238,7 +238,15 @@ void rt_pm_request(rt_ubase_t mode)
* if not, it has already called in rt_pm_exit()
*/
if (pm->current_mode < PM_SLEEP_MODE_START)
+ {
pm->ops->exit(pm);
+ }
+ else if (pm->exit_count)
+ {
+ /* call exeit when global interrupt is disable */
+ pm->ops->exit(pm);
+ pm->exit_count = 0;
+ }
/* update current mode */
pm->current_mode = mode;