| From 231f9415001138a000cd0f881c46654b7ea3f8c5 Mon Sep 17 00:00:00 2001 |
| From: Willy Tarreau <w@1wt.eu> |
| Date: Mon, 9 Jul 2018 14:03:55 +0200 |
| Subject: ACPI / PM: save NVS memory for ASUS 1025C laptop |
| |
| From: Willy Tarreau <w@1wt.eu> |
| |
| commit 231f9415001138a000cd0f881c46654b7ea3f8c5 upstream. |
| |
| Every time I tried to upgrade my laptop from 3.10.x to 4.x I faced an |
| issue by which the fan would run at full speed upon resume. Bisecting |
| it showed me the issue was introduced in 3.17 by commit 821d6f0359b0 |
| (ACPI / sleep: Do not save NVS for new machines to accelerate S3). This |
| code only affects machines built starting as of 2012, but this Asus |
| 1025C laptop was made in 2012 and apparently needs the NVS data to be |
| saved, otherwise the CPU's thermal state is not properly reported on |
| resume and the fan runs at full speed upon resume. |
| |
| Here's a very simple way to check if such a machine is affected : |
| |
| # cat /sys/class/thermal/thermal_zone0/temp |
| 55000 |
| |
| ( now suspend, wait one second and resume ) |
| |
| # cat /sys/class/thermal/thermal_zone0/temp |
| 0 |
| |
| (and after ~15 seconds the fan starts to spin) |
| |
| Let's apply the same quirk as commit cbc00c13 (ACPI: save NVS memory |
| for Lenovo G50-45) and reuse the function it provides. Note that this |
| commit was already backported to 4.9.x but not 4.4.x. |
| |
| Cc: 3.17+ <stable@vger.kernel.org> # 3.17+: requires cbc00c13 |
| Signed-off-by: Willy Tarreau <w@1wt.eu> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/acpi/sleep.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| --- a/drivers/acpi/sleep.c |
| +++ b/drivers/acpi/sleep.c |
| @@ -338,6 +338,14 @@ static const struct dmi_system_id acpisl |
| DMI_MATCH(DMI_PRODUCT_NAME, "K54HR"), |
| }, |
| }, |
| + { |
| + .callback = init_nvs_save_s3, |
| + .ident = "Asus 1025C", |
| + .matches = { |
| + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), |
| + DMI_MATCH(DMI_PRODUCT_NAME, "1025C"), |
| + }, |
| + }, |
| /* |
| * https://bugzilla.kernel.org/show_bug.cgi?id=189431 |
| * Lenovo G50-45 is a platform later than 2012, but needs nvs memory |