diff options
author | Hu, Hebo <hebo.hu@intel.com> | 2019-03-08 15:34:21 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-04-08 02:51:29 -0700 |
commit | 6a184d5019f0b45fe692da09a14e9ce7c853d68c (patch) | |
tree | 541192356148342f09bacebb75bea95027e98e7d /core/minute-ia/interrupts.h | |
parent | d0a350e6691a9d93138051e2aa00e0d6c26151b5 (diff) | |
download | chrome-ec-6a184d5019f0b45fe692da09a14e9ce7c853d68c.tar.gz |
ish/ish5: implement AON low power management framework
AON PM framework including:
1: AON task skeleton
2: task switching between main FW and AON task
3: 'idlestats' console command for D0ix statistic information
4: D0ix entrance in idle task
BUG=b:122364080
BRANCH=none
TEST=tested on arcada
Change-Id: Iefa9e067892d5c42d9f0c795275fe88e5a36115b
Signed-off-by: Hu, Hebo <hebo.hu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/1510518
Commit-Ready: Rushikesh S Kadam <rushikesh.s.kadam@intel.com>
Commit-Ready: Hebo Hu <hebo.hu@intel.corp-partner.google.com>
Tested-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Hebo Hu <hebo.hu@intel.corp-partner.google.com>
Diffstat (limited to 'core/minute-ia/interrupts.h')
-rw-r--r-- | core/minute-ia/interrupts.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/core/minute-ia/interrupts.h b/core/minute-ia/interrupts.h index 1a5e44d1ee..3a951a5ddb 100644 --- a/core/minute-ia/interrupts.h +++ b/core/minute-ia/interrupts.h @@ -51,6 +51,17 @@ void init_interrupts(void); void mask_interrupt(unsigned int irq); void unmask_interrupt(unsigned int irq); +/** + * disable current all enabled intrrupts + * return current irq mask bitmap + * power management typically use 'disable_all_interrupts' to disable current + * all interrupts and save current interrupts enabling settings before enter + * low power state, and use 'restore_interrupts' to restore the interrupts + * settings after exit low power state. + */ +uint64_t disable_all_interrupts(void); +void restore_interrupts(uint64_t irq_map); + /* Only call in interrupt context */ uint32_t get_current_interrupt_vector(void); #endif |