summaryrefslogtreecommitdiff
path: root/power/cometlake-discrete.c
diff options
context:
space:
mode:
Diffstat (limited to 'power/cometlake-discrete.c')
-rw-r--r--power/cometlake-discrete.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/power/cometlake-discrete.c b/power/cometlake-discrete.c
index 8c6f114467..13f0d34eba 100644
--- a/power/cometlake-discrete.c
+++ b/power/cometlake-discrete.c
@@ -200,7 +200,7 @@ void chipset_force_shutdown(enum chipset_shutdown_reason reason)
report_ap_reset(reason);
shutdown_s0_rails();
- /* S3 is automatic based on SLP_S3 driving memory rails */
+ /* S3->S5 is automatic based on SLP_S3 driving memory rails. */
shutdown_s5_rails();
}
@@ -346,6 +346,16 @@ enum power_state power_handle_state(enum power_state state)
shutdown_s0_rails();
break;
+ case POWER_S5:
+ /*
+ * Return to G3 if S5 rails are not on, probably because of
+ * a forced power-off.
+ */
+ if ((power_get_signals() & CHIPSET_G3S5_POWERUP_SIGNAL) !=
+ CHIPSET_G3S5_POWERUP_SIGNAL)
+ return POWER_S5G3;
+ break;
+
default:
break;
}