summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2017-09-23 01:15:53 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-10-03 17:28:28 -0700
commit04db902fee7dc7ae615fbb22454dc247a534c1f0 (patch)
tree4edb40bb519b0ce9acae506b0d899ed529649ae3 /power
parent81682e06bc94d1b9e702b9794349bd34594896b3 (diff)
downloadchrome-ec-04db902fee7dc7ae615fbb22454dc247a534c1f0.tar.gz
intel_x86: Enable/disable SLP_S0 signal based on S0ix entry/exit
Runtime S0ix results in SLP_S0 signal being toggled continuously resulting in an interrupt storm on the EC. In order to avoid this, enable SLP_S0 power signal only when host indicates intent to enter S0ix and disable when host exits from S0ix. BUG=b:65421825 BRANCH=None TEST=Verified that runtime S0ix no longer results in interrupt storm on EC. Normal S0ix works fine on soraka. Verified state of SLP_S0 using powerindebug. Change-Id: I9ca62b8122afd8acedc2c353106407fdcc284925 Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/679982 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'power')
-rw-r--r--power/intel_x86.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/power/intel_x86.c b/power/intel_x86.c
index 6c182344c4..c1f49353fd 100644
--- a/power/intel_x86.c
+++ b/power/intel_x86.c
@@ -464,6 +464,13 @@ power_board_handle_host_sleep_event(enum host_sleep_event state)
void power_chipset_handle_host_sleep_event(enum host_sleep_event state)
{
power_board_handle_host_sleep_event(state);
+
+#ifdef CONFIG_POWER_S0IX
+ if (state == HOST_SLEEP_EVENT_S0IX_SUSPEND)
+ power_signal_enable_interrupt(sleep_sig[SYS_SLEEP_S0IX]);
+ else
+ power_signal_disable_interrupt(sleep_sig[SYS_SLEEP_S0IX]);
+#endif
}
#endif