aboutsummaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/common/block/acpi/pep.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/soc/intel/common/block/acpi/pep.c b/src/soc/intel/common/block/acpi/pep.c
index b83b71491f..139943865f 100644
--- a/src/soc/intel/common/block/acpi/pep.c
+++ b/src/soc/intel/common/block/acpi/pep.c
@@ -14,6 +14,7 @@
#define SYSTEM_POWER_MANAGEMENT_CID "PNP0D80"
#define EC_S0IX_HOOK "\\_SB.PCI0.LPCB.EC0.S0IX"
#define MAINBOARD_HOOK "\\_SB.MS0X"
+#define MAINBOARD_DISPLAY_HOOK "\\_SB.MDSX"
#define ENABLE_PM_BITS_HOOK "\\_SB.PCI0.EGPM"
#define RESTORE_PM_BITS_HOOK "\\_SB.PCI0.RGPM"
#define LPI_STATES_ALL 0xff
@@ -150,12 +151,30 @@ static void lpi_s0ix_exit(void *unused)
acpigen_write_if_end();
}
+static void lpi_display_on(void *unused)
+{
+ /* Provide a board level S0ix hook */
+ acpigen_write_if_cond_ref_of(MAINBOARD_DISPLAY_HOOK);
+ acpigen_emit_namestring(MAINBOARD_DISPLAY_HOOK);
+ acpigen_write_integer(1);
+ acpigen_write_if_end();
+}
+
+static void lpi_display_off(void *unused)
+{
+ /* Provide a board level S0ix hook */
+ acpigen_write_if_cond_ref_of(MAINBOARD_DISPLAY_HOOK);
+ acpigen_emit_namestring(MAINBOARD_DISPLAY_HOOK);
+ acpigen_write_integer(0);
+ acpigen_write_if_end();
+}
+
static void (*lpi_s0_helpers[])(void *) = {
NULL, /* enumerate functions (autogenerated) */
lpi_get_constraints, /* get device constraints */
NULL, /* get crash dump device */
- NULL, /* display off notify */
- NULL, /* display on notify */
+ lpi_display_off, /* display off notify */
+ lpi_display_on, /* display on notify */
lpi_s0ix_entry, /* s0ix entry */
lpi_s0ix_exit, /* s0ix exit */
};