summaryrefslogtreecommitdiff
path: root/drivers/acpi/sleep.c
diff options
context:
space:
mode:
authorDouglas Anderson <dianders@chromium.org>2022-01-05 16:13:50 -0800
committerDouglas Anderson <dianders@chromium.org>2022-01-05 16:13:50 -0800
commitf757b390faab6c38fe0887dc2123dcb615e21953 (patch)
treebd3a7c81a775c362693bccaf00e2cef9e07e2eea /drivers/acpi/sleep.c
parent443c053f51f9173042a2b45d0db7271cebe78198 (diff)
parent4c82fd0506b4cc196a375d1200361fb0c5439acd (diff)
Merge remote-tracking branch 'drm-intel/topic/core-for-CI' into drm-tip
Diffstat (limited to 'drivers/acpi/sleep.c')
-rw-r--r--drivers/acpi/sleep.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index eaa47753b758..03b911e94df2 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -81,11 +81,16 @@ static int acpi_sleep_prepare(u32 acpi_state)
return 0;
}
+static u8 max_sleep_state = -1;
+
bool acpi_sleep_state_supported(u8 sleep_state)
{
acpi_status status;
u8 type_a, type_b;
+ if (sleep_state > max_sleep_state)
+ return false;
+
status = acpi_get_sleep_type_data(sleep_state, &type_a, &type_b);
return ACPI_SUCCESS(status) && (!acpi_gbl_reduced_hardware
|| (acpi_gbl_FADT.sleep_control.address
@@ -162,6 +167,13 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d)
return 0;
}
+static int __init init_nosleep(const struct dmi_system_id *d)
+{
+ pr_info("Disabling ACPI suspend\n");
+ max_sleep_state = 0;
+ return 0;
+}
+
bool acpi_sleep_default_s3;
static int __init init_default_s3(const struct dmi_system_id *d)
@@ -374,6 +386,15 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_NAME, "20GGA00L00"),
},
},
+
+ {
+ .callback = init_nosleep,
+ .ident = "samus",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Samus"),
+ },
+ },
{},
};