| From 4a59cde8cfcad02314cbfdd732f51e8737fcde60 Mon Sep 17 00:00:00 2001 |
| From: Zhang Rui <rui.zhang@intel.com> |
| Date: Mon, 16 Jan 2017 10:55:45 +0800 |
| Subject: [PATCH] ACPI: save NVS memory for Lenovo G50-45 |
| |
| commit cbc00c1310d34139a63946482b40a6b261a03fb9 upstream. |
| |
| In commit 821d6f0359b0 (ACPI / sleep: Do not save NVS for new machines to |
| accelerate S3), to optimize S3 suspend/resume speed, code is introduced |
| to ignore NVS memory saving during S3 for all the platforms later than |
| 2012. |
| |
| But, Lenovo G50-45, a platform released in 2015, still needs NVS memory |
| saving during S3. A quirk is introduced for this platform. |
| |
| Link: https://bugzilla.kernel.org/show_bug.cgi?id=189431 |
| Tested-by: Przemek <soprwa@gmail.com> |
| Signed-off-by: Zhang Rui <rui.zhang@intel.com> |
| [ rjw: Drop unnecessary code ] |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c |
| index 7a2e4d45b266..5766ffc4625e 100644 |
| --- a/drivers/acpi/sleep.c |
| +++ b/drivers/acpi/sleep.c |
| @@ -130,6 +130,12 @@ void __init acpi_nvs_nosave_s3(void) |
| nvs_nosave_s3 = true; |
| } |
| |
| +static int __init init_nvs_save_s3(const struct dmi_system_id *d) |
| +{ |
| + nvs_nosave_s3 = false; |
| + return 0; |
| +} |
| + |
| /* |
| * ACPI 1.0 wants us to execute _PTS before suspending devices, so we allow the |
| * user to request that behavior by using the 'acpi_old_suspend_ordering' |
| @@ -324,6 +330,19 @@ static struct dmi_system_id acpisleep_dmi_table[] __initdata = { |
| DMI_MATCH(DMI_PRODUCT_NAME, "K54HR"), |
| }, |
| }, |
| + /* |
| + * https://bugzilla.kernel.org/show_bug.cgi?id=189431 |
| + * Lenovo G50-45 is a platform later than 2012, but needs nvs memory |
| + * saving during S3. |
| + */ |
| + { |
| + .callback = init_nvs_save_s3, |
| + .ident = "Lenovo G50-45", |
| + .matches = { |
| + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), |
| + DMI_MATCH(DMI_PRODUCT_NAME, "80E3"), |
| + }, |
| + }, |
| {}, |
| }; |
| |
| -- |
| 2.12.0 |
| |