public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH AUTOSEL 6.19-5.10] ACPI: PM: Save NVS memory on Lenovo G70-35
       [not found] <20260305153704.106918-1-sashal@kernel.org>
@ 2026-03-05 15:36 ` Sasha Levin
  2026-03-05 15:36 ` [PATCH AUTOSEL 6.19-5.10] ACPI: OSI: Add DMI quirk for Acer Aspire One D255 Sasha Levin
  1 sibling, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2026-03-05 15:36 UTC (permalink / raw)
  To: patches, stable
  Cc: Piotr Mazek, Rafael J. Wysocki, Sasha Levin, rafael, linux-acpi,
	linux-kernel

From: Piotr Mazek <pmazek@outlook.com>

[ Upstream commit 023cd6d90f8aa2ef7b72d84be84a18e61ecebd64 ]

[821d6f0359b0614792ab8e2fb93b503e25a65079] prevented machines
produced later than 2012 from saving NVS region to accelerate S3.

Despite being made after 2012, Lenovo G70-35 still needs NVS memory
saving during S3. A quirk is introduced for this platform.

Signed-off-by: Piotr Mazek <pmazek@outlook.com>
[ rjw: Subject adjustment ]
Link: https://patch.msgid.link/GV2PPF3CD5B63CC2442EE3F76F8443EAD90D499A@GV2PPF3CD5B63CC.EURP251.PROD.OUTLOOK.COM
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

### Classification

This is a **hardware quirk** — one of the explicitly listed exception
categories that are appropriate for stable backporting. The pattern is
identical to the existing Lenovo G50-45 and G40-45 quirks already in the
table.

### Technical details

- Commit `821d6f0359b0` (2014) made machines with BIOS year >= 2012 skip
  NVS memory saving to speed up S3 suspend.
- Some Lenovo laptops (G50-45, G40-45, and now G70-35) need the NVS save
  despite being post-2012.
- Without this quirk, suspend/resume (S3) is broken on the Lenovo
  G70-35.

### Risk assessment

- **Scope**: Adds exactly 8 lines to a DMI quirk table — the most
  mechanical kind of change possible.
- **Affected systems**: Only the Lenovo G70-35 (DMI match on vendor
  "LENOVO" + product "80Q5"). Zero impact on any other machine.
- **Risk of regression**: Essentially zero. The DMI match is highly
  specific.
- **Benefit**: Fixes S3 suspend/resume on this laptop — a real user-
  facing bug that makes the machine unusable for suspend.

### Stable criteria check

1. **Obviously correct and tested**: Yes — follows exact same pattern as
   existing quirks, and presumably tested by the reporter on the
   hardware.
2. **Fixes a real bug**: Yes — broken S3 suspend/resume on this laptop.
3. **Important issue**: Yes — suspend/resume not working is a
   significant issue for laptop users.
4. **Small and contained**: Yes — 8 lines added to a DMI table, no logic
   changes.
5. **No new features**: Correct — this restores expected behavior on
   specific hardware.
6. **Dependencies**: None — the DMI table and `init_nvs_save_s3`
   callback have existed since 2014. This will apply cleanly to any
   stable tree.

### Verification

- Verified commit `821d6f0359b0` exists and introduced the post-2012 NVS
  nosave optimization (confirmed via `git log` and `git show`).
- Verified the existing quirk table in `drivers/acpi/sleep.c` already
  has identical entries for Lenovo G50-45 ("80E3") and G40-45 ("80E1")
  at lines 373-388.
- Verified `init_nvs_save_s3` callback and `acpi_sleep_dmi_check()`
  (line 412-418) show the 2012 cutoff logic — confirming the quirk
  mechanism.
- Verified the change is purely additive: 8 lines added to the DMI
  table, no existing code modified.
- The `acpisleep_dmi_table` and `init_nvs_save_s3` have been present
  since 2014, so all active stable trees contain the prerequisite code.

This is a textbook hardware quirk addition — small, safe, DMI-matched to
a single platform, fixing a real suspend/resume issue, with zero risk to
other systems.

**YES**

 drivers/acpi/sleep.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 66ec81e306d47..132a9df984713 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -386,6 +386,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "80E1"),
 		},
 	},
+	{
+	.callback = init_nvs_save_s3,
+	.ident = "Lenovo G70-35",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "80Q5"),
+		},
+	},
 	/*
 	 * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using
 	 * the Low Power S0 Idle firmware interface (see
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH AUTOSEL 6.19-5.10] ACPI: OSI: Add DMI quirk for Acer Aspire One D255
       [not found] <20260305153704.106918-1-sashal@kernel.org>
  2026-03-05 15:36 ` [PATCH AUTOSEL 6.19-5.10] ACPI: PM: Save NVS memory on Lenovo G70-35 Sasha Levin
@ 2026-03-05 15:36 ` Sasha Levin
  1 sibling, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2026-03-05 15:36 UTC (permalink / raw)
  To: patches, stable
  Cc: Sofia Schneider, Rafael J. Wysocki, Sasha Levin, rafael,
	linux-acpi, linux-kernel

From: Sofia Schneider <sofia@schn.dev>

[ Upstream commit 5ede90206273ff156a778254f0f972a55e973c89 ]

The screen backlight turns off during boot (specifically during udev device
initialization) when returning true for _OSI("Windows 2009").

Analyzing the device's DSDT reveals that the firmware takes a different
code path when Windows 7 is reported, which leads to the backlight shutoff.
Add a DMI quirk to invoke dmi_disable_osi_win7 for this model.

Signed-off-by: Sofia Schneider <sofia@schn.dev>
Link: https://patch.msgid.link/20260223025240.518509-1-sofia@schn.dev
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

The `dmi_disable_osi_win7` callback already exists and is used by other
quirks (ASUS K50IJ at line 368). This commit simply adds another entry
to the same table using the same callback.

### Stable Kernel Criteria Assessment

1. **Obviously correct and tested**: Yes. It's a straightforward DMI
   table entry addition following the exact same pattern as dozens of
   existing entries in the same table. The author analyzed the DSDT to
   confirm the firmware behavior. The ACPI maintainer (Rafael Wysocki)
   accepted and signed off.

2. **Fixes a real bug**: Yes. The screen backlight turns off during boot
   on this specific laptop model — a clear user-visible
   regression/hardware issue. Users cannot see their screen.

3. **Important issue**: Yes. A blank screen during boot is a significant
   usability problem — the laptop is effectively unusable without a
   workaround.

4. **Small and contained**: Yes. The change adds exactly 13 lines (a
   comment and a DMI table entry) to a single file. Zero logic changes.
   Zero risk to other hardware.

5. **No new features**: Correct. This uses the existing
   `dmi_disable_osi_win7` mechanism. No new APIs, no new code paths.

6. **Applies cleanly**: The change is a simple table entry insertion.
   Even if surrounding entries differ slightly between stable versions,
   this can be trivially applied at any point in the table.

### Risk Assessment

- **Risk**: Essentially zero. The DMI match is specific to vendor "Acer"
  + product "AOD255". It cannot affect any other hardware.
- **Benefit**: Screen backlight works correctly on Acer Aspire One D255
  during boot.
- **Blast radius**: One specific laptop model only.

### Verification

- Verified `dmi_disable_osi_win7` callback exists at line 279 of
  `drivers/acpi/osi.c` and is already used by another quirk entry (ASUS
  K50IJ at line 368).
- Verified the diff adds only a DMI table entry following the identical
  pattern of existing entries in the same `acpi_osi_dmi_table[]` array.
- Verified the commit was accepted by Rafael Wysocki, the ACPI subsystem
  maintainer.
- The change touches exactly one file (`drivers/acpi/osi.c`) with a
  trivial table addition.
- The `acpi_osi_dmi_table` and `dmi_disable_osi_win7` have existed in
  the kernel for many years, so this applies to all active stable trees.

### Conclusion

This is a textbook hardware quirk addition — the exact type of commit
that stable trees exist to carry. It fixes a real, user-visible bug
(blank screen) on specific hardware, uses existing infrastructure, has
zero risk to other systems, and is trivially small.

**YES**

 drivers/acpi/osi.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/acpi/osi.c b/drivers/acpi/osi.c
index f2c943b934be0..9470f1830ff50 100644
--- a/drivers/acpi/osi.c
+++ b/drivers/acpi/osi.c
@@ -389,6 +389,19 @@ static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = {
 		},
 	},
 
+	/*
+	 * The screen backlight turns off during udev device creation
+	 * when returning true for _OSI("Windows 2009")
+	 */
+	{
+	.callback = dmi_disable_osi_win7,
+	.ident = "Acer Aspire One D255",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		     DMI_MATCH(DMI_PRODUCT_NAME, "AOD255"),
+		},
+	},
+
 	/*
 	 * The wireless hotkey does not work on those machines when
 	 * returning true for _OSI("Windows 2012")
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-03-05 15:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260305153704.106918-1-sashal@kernel.org>
2026-03-05 15:36 ` [PATCH AUTOSEL 6.19-5.10] ACPI: PM: Save NVS memory on Lenovo G70-35 Sasha Levin
2026-03-05 15:36 ` [PATCH AUTOSEL 6.19-5.10] ACPI: OSI: Add DMI quirk for Acer Aspire One D255 Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox