summaryrefslogtreecommitdiff
path: root/core/minute-ia/interrupts.h
diff options
context:
space:
mode:
authorHu, Hebo <hebo.hu@intel.com>2019-03-08 15:34:21 +0800
committerchrome-bot <chrome-bot@chromium.org>2019-04-08 02:51:29 -0700
commit6a184d5019f0b45fe692da09a14e9ce7c853d68c (patch)
tree541192356148342f09bacebb75bea95027e98e7d /core/minute-ia/interrupts.h
parentd0a350e6691a9d93138051e2aa00e0d6c26151b5 (diff)
downloadchrome-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.h11
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