From: Mario Limonciello mario.limonciello@amd.com
[ Upstream commit 9ba75ccad85708c5a484637dccc1fc59295b0a83 ]
Every other s2idle cycle fails to reach hardware sleep when keyboard wakeup is enabled. This appears to be an EC bug, but the vendor refuses to fix it.
It was confirmed that turning off i8042 wakeup avoids ths issue (albeit keyboard wakeup is disabled). Take the lesser of two evils and add it to the i8042 quirk list.
Reported-by: Raoul ein4rth@gmail.com Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220116 Tested-by: Raoul ein4rth@gmail.com Signed-off-by: Mario Limonciello mario.limonciello@amd.com Link: https://lore.kernel.org/r/20250611203341.3733478-1-superm1@kernel.org Reviewed-by: Ilpo Järvinen ilpo.jarvinen@linux.intel.com Signed-off-by: Ilpo Järvinen ilpo.jarvinen@linux.intel.com Signed-off-by: Sasha Levin sashal@kernel.org ---
**YES**
This commit should be backported to stable kernel trees. Here's the extensive explanation based on the code analysis:
## Key Reasons for Backporting:
### 1. **Bug Fix for Real Hardware Issue** The commit fixes a legitimate suspend/resume bug on the PCSpecialist Lafite Pro V 14M laptop where: - Every other s2idle cycle fails to reach hardware sleep when keyboard wakeup is enabled - This is confirmed to be an EC (Embedded Controller) firmware bug - The issue causes spurious wakeups, severely affecting power management
### 2. **Simple, Contained Fix** The change is minimal and low-risk: ```diff + { + .ident = "PCSpecialist Lafite Pro V 14M", + .driver_data = &quirk_spurious_8042, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "PCSpecialist"), + DMI_MATCH(DMI_PRODUCT_NAME, "Lafite Pro V 14M"), + } + }, ``` It only adds a DMI match entry to an existing quirk list, using an already-established mechanism (`quirk_spurious_8042`).
### 3. **Follows Established Pattern** This commit follows the exact same pattern as previous backported commits: - Commit `a55bdad5dfd1` (Framework 13) - BACKPORTED - Commit `0887817e4953` (MECHREVO Wujie 14XA) - BACKPORTED Both use the same `quirk_spurious_8042` mechanism and were deemed suitable for stable.
### 4. **Hardware-Specific Fix** The fix is: - Only activated for specific hardware (DMI matching) - Cannot affect other systems - Has zero risk of regression on non-affected hardware
### 5. **User Impact** From the commit message and bug report: - The vendor refuses to fix the EC firmware bug - Without this fix, users experience broken suspend/resume behavior - This is the "lesser of two evils" - disabling keyboard wakeup vs. having unreliable suspend
### 6. **Implementation Details** The quirk works by setting `dev->disable_8042_wakeup = true` in `amd_pmc_quirks_init()`, which triggers `amd_pmc_wa_irq1()` during suspend to: ```c disable_irq_wake(1); device_set_wakeup_enable(d, false); ``` This disables IRQ1 (keyboard) as a wakeup source, preventing the spurious wakeups.
### 7. **Tested Solution** The commit includes: - Reported-by tag - Tested-by tag - Reference to bug report (https://bugzilla.kernel.org/show_bug.cgi?id=220116)
This indicates the fix has been verified to resolve the issue on affected hardware.
The commit meets all criteria for stable backporting: it fixes a real bug affecting users, is minimal in scope, has no risk of regression, and follows the established pattern of similar fixes that have already been backported.
drivers/platform/x86/amd/pmc/pmc-quirks.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c index 2e3f6fc67c568..7ed12c1d3b34c 100644 --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c @@ -224,6 +224,15 @@ static const struct dmi_system_id fwbug_list[] = { DMI_MATCH(DMI_BOARD_NAME, "WUJIE14-GX4HRXL"), } }, + /* https://bugzilla.kernel.org/show_bug.cgi?id=220116 */ + { + .ident = "PCSpecialist Lafite Pro V 14M", + .driver_data = &quirk_spurious_8042, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "PCSpecialist"), + DMI_MATCH(DMI_PRODUCT_NAME, "Lafite Pro V 14M"), + } + }, {} };