summaryrefslogtreecommitdiff
path: root/zephyr/subsys/ap_pwrseq/power_host_sleep.c
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/subsys/ap_pwrseq/power_host_sleep.c')
-rw-r--r--zephyr/subsys/ap_pwrseq/power_host_sleep.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/zephyr/subsys/ap_pwrseq/power_host_sleep.c b/zephyr/subsys/ap_pwrseq/power_host_sleep.c
index bc38215921..5c91b2503e 100644
--- a/zephyr/subsys/ap_pwrseq/power_host_sleep.c
+++ b/zephyr/subsys/ap_pwrseq/power_host_sleep.c
@@ -113,8 +113,17 @@ enum ap_power_sleep_type sleep_state = AP_POWER_SLEEP_NONE;
*/
static void power_s0ix_suspend_clear_masks(void)
{
- backup_sci_mask = lpc_get_host_event_mask(LPC_HOST_EVENT_SCI);
- backup_smi_mask = lpc_get_host_event_mask(LPC_HOST_EVENT_SMI);
+ host_event_t sci_mask, smi_mask;
+
+ sci_mask = lpc_get_host_event_mask(LPC_HOST_EVENT_SCI);
+ smi_mask = lpc_get_host_event_mask(LPC_HOST_EVENT_SMI);
+
+ /* Do not backup already-cleared SCI/SMI masks. */
+ if (!sci_mask && !smi_mask)
+ return;
+
+ backup_sci_mask = sci_mask;
+ backup_smi_mask = smi_mask;
lpc_set_host_event_mask(LPC_HOST_EVENT_SCI, 0);
lpc_set_host_event_mask(LPC_HOST_EVENT_SMI, 0);
}