[PATCH AUTOSEL 6.19-6.12] ACPI: x86: Force enabling of PWM2 on the Yogabook YB1-X90
From: Sasha Levin
Date: Fri Feb 20 2026 - 07:40:58 EST
From: Yauhen Kharuzhy <jekhor@xxxxxxxxx>
[ Upstream commit a8c975302868c716afef0f50467bebbd069a35b8 ]
The PWM2 on YB1-X90 tablets is used for keyboard backlight control but
it is disabled in the ACPI DSDT table. Add it to the override_status_ids
list to allow keyboard function control driver
(drivers/platform/x86/lenovo/yogabook.c) to use it.
Signed-off-by: Yauhen Kharuzhy <jekhor@xxxxxxxxx>
Link: https://patch.msgid.link/20260211222242.4101162-1-jekhor@xxxxxxxxx
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
LLM Generated explanations, may be completely bogus:
Now I have a comprehensive picture. Let me analyze this commit.
## Analysis
### 1. Commit Message Analysis
The commit adds an entry to the `override_status_ids` list in
`drivers/acpi/x86/utils.c` to force-enable the PWM2 ACPI device on
Lenovo Yoga Book YB1-X90 tablets. The PWM2 is used for keyboard
backlight control but is disabled in the ACPI DSDT table. Without this
override, the yogabook platform driver cannot control the keyboard
backlight.
### 2. Code Change Analysis
The change is a straightforward addition of a `PRESENT_ENTRY_HID` entry
to the existing quirk table. It:
- Targets HID `"80862289"` (Intel Cherry Trail PWM), UID `"2"` (PWM2
specifically)
- Scopes to `INTEL_ATOM_AIRMONT` CPU platform (Cherry Trail)
- Narrows with 3 DMI_EXACT_MATCH entries specific to the Yoga Book
Android variant (YETI-11)
- This is the exact same pattern as the existing Xiaomi Mi Pad 2 entry
(lines 78-82) which also enables PWM2 for touchkey backlight control
The change is ~12 lines including the comment. It follows an
established, well-understood pattern that's been used in this file for
years.
### 3. Classification: Hardware Quirk
This is a **hardware quirk/workaround** — one of the explicitly allowed
exception categories for stable backports. The device has broken ACPI
firmware (DSDT disables a needed device), and this quirk works around it
by forcing the device present.
### 4. Scope and Risk Assessment
- **Very small change**: ~12 lines added to a data table
- **Zero risk to other hardware**: The DMI_EXACT_MATCH conditions ensure
this only triggers on the exact Lenovo Yoga Book YB1-X90 (YETI-11
variant)
- **Well-tested pattern**: Identical to the Xiaomi Mi Pad 2 entry that's
been in the kernel since v4.18
- **No code logic changes**: Only adds data to an existing table
### 5. Dependencies
The change depends on:
- The `override_status_ids` mechanism — present since at least v4.x
- The yogabook platform driver
(`drivers/platform/x86/lenovo/yogabook.c`) — added in v6.6 via commit
`6df1523fa0b79`
- The keyboard backlight support in the platform driver — added in v6.6
via commit `fc4f1d88bc6b1`
The prerequisite code exists in all current stable trees (6.6+). The
file path changed recently (moved to `lenovo/` subdirectory in commit
`651b57dd40871`), so older stable trees may need minor context
adjustment, but the data-table addition itself is trivially portable.
### 6. User Impact
Without this quirk, the keyboard backlight on Lenovo Yoga Book YB1-X90
tablets doesn't work under Linux. This is a real hardware enablement
issue for a specific consumer tablet.
### 7. Stable Suitability
- **Obviously correct**: Follows the exact same pattern as existing
entries
- **Fixes a real issue**: Keyboard backlight doesn't work without it
- **Small and contained**: Data-only addition to a quirk table
- **No new features**: Enables existing functionality on specific
hardware
- **No new APIs**: Pure internal quirk
### Verification
- Verified `fc4f1d88bc6b1` (keyboard backlight platform driver) is in
v6.6 via `git merge-base --is-ancestor`
- Verified `6df1523fa0b79` (platform driver support) is in v6.6 via `git
merge-base --is-ancestor`
- Verified `1a1e7540cf501` (ACPI quirk for i2c clients) is in v6.6 via
`git merge-base --is-ancestor`
- Verified the existing Xiaomi Mi Pad 2 PWM2 entry (`b72cd8e0fa34d`) is
in v6.6 via `git merge-base --is-ancestor`, confirming the
infrastructure exists
- Read `drivers/acpi/x86/utils.c` lines 55-104 to confirm the existing
code structure and similar entries
- Confirmed via git log that the commit `a8c975302868c` exists and
matches the described change
- The agent exploration confirmed the yogabook platform driver at
`drivers/platform/x86/lenovo/yogabook.c` uses `devm_pwm_get(dev,
"pwm_soc_lpss_2")` at line 488, which is the PWM2 device being enabled
by this quirk
This is a textbook hardware quirk addition — small, safe, DMI-scoped to
one specific device, follows an established pattern, and enables real
hardware functionality for users. It meets all stable kernel criteria.
**YES**
drivers/acpi/x86/utils.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index 4ee30c2897a2b..418951639f511 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -81,6 +81,18 @@ static const struct override_status_id override_status_ids[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "Mipad2"),
}),
+ /*
+ * Lenovo Yoga Book uses PWM2 for touch keyboard backlight control.
+ * It needs to be enabled only for the Android device version (YB1-X90*
+ * aka YETI-11); the Windows version (YB1-X91*) uses ACPI control
+ * methods.
+ */
+ PRESENT_ENTRY_HID("80862289", "2", INTEL_ATOM_AIRMONT, {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"),
+ }),
+
/*
* The INT0002 device is necessary to clear wakeup interrupt sources
* on Cherry Trail devices, without it we get nobody cared IRQ msgs.
--
2.51.0