From: Antheas Kapenekakis lkml@antheas.dev
[ Upstream commit c0ddc54016636dd8dedfaf1a3b482a95058e1db2 ]
The Xbox Ally features a Van Gogh SoC that has spurious interrupts during resume. We get the following logs:
atkbd_receive_byte: 20 callbacks suppressed atkbd serio0: Spurious ACK on isa0060/serio0. Some program might be trying to access hardware directly.
So, add the spurious_8042 quirk for it. It does not have a keyboard, so this does not result in any functional loss.
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4659 Signed-off-by: Antheas Kapenekakis lkml@antheas.dev Reviewed-by: Mario Limonciello (AMD) superm1@kernel.org Link: https://patch.msgid.link/20251024152152.3981721-3-lkml@antheas.dev 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 ---
LLM Generated explanations, may be completely bogus:
## Analysis
### 1. Commit Message Analysis The commit addresses a specific hardware issue on the "Xbox Ally" (ASUS ROG Ally) equipped with the Van Gogh SoC. - **Problem:** The device experiences spurious interrupts from the 8042 controller (keyboard) during resume, causing log spam ("atkbd_receive_byte: 20 callbacks suppressed", "Spurious ACK..."). - **Solution:** Add the device to the `fwbug_list` with the `quirk_spurious_8042` quirk. - **Context:** The device is a handheld gaming PC without a physical keyboard, so disabling keyboard wakeup has no functional downside. - **Tags:** Includes "Closes:" linking to a bug report and "Reviewed- by:". It lacks a "Cc: stable" tag, but this is likely an oversight given the nature of the patch.
### 2. Deep Code Research - **Code Change:** The patch adds a single `dmi_system_id` entry to `drivers/platform/x86/amd/pmc/pmc-quirks.c`. - **Mechanism:** - The new entry matches the DMI data for "ASUSTeK COMPUTER INC." / "RC73YA". - It assigns `driver_data = &quirk_spurious_8042`. - In `amd_pmc_quirks_init()`, this quirk sets `dev->disable_8042_wakeup = true`. - During suspend, `amd_pmc_suspend_handler()` checks this flag and calls `amd_pmc_wa_irq1()`, which disables the IRQ1 wakeup source. - This prevents the firmware bug (spurious IRQ1 assertion) from triggering during resume. - **Dependencies:** The quirk infrastructure (`quirk_spurious_8042`) was introduced in late 2023 and is present in all currently supported stable kernels (6.1.y and newer). The change is self-contained.
### 3. Historical Context & Precedent This file (`pmc-quirks.c`) serves as a central registry for AMD PMC firmware bugs. There is a strong established pattern of backporting new entries for this specific issue: - Commit `12a3dd4d2cd92` ("Add Stellaris Slim Gen6 AMD...") - Commit `8822e8be86d40` ("Add MECHREVO Yilong15Pro...") - Commit `c96f86217bb28` ("Add TUXEDO IB Pro Gen10...") All of these were backported to stable trees. This commit follows the exact same pattern.
### 4. Stable Kernel Rules Compliance This commit falls strictly under the **"QUIRKS and WORKAROUNDS"** exception in the stable kernel rules: - **Rule:** "Hardware-specific quirks for broken/buggy devices" are allowed. - **Compliance:** The patch fixes broken behavior (spurious interrupts) on specific hardware using an existing workaround mechanism. - **Constraint Check:** It introduces no new features, APIs, or architectural changes. It is a data-only change (adding a struct entry).
### 5. Risk Assessment - **Severity:** Medium. The issue causes log spam and potential resume quirks, which degrades the user experience on this specific device. - **Regression Risk:** **Extremely Low**. - The change is guarded by a specific DMI match, ensuring it affects *only* the ROG Ally RC73YA. - The mitigation (disabling keyboard wakeup) is safe because the device physically lacks a keyboard. - The underlying logic is well-tested on other AMD platforms (Renoir, Cezanne, etc.).
### Conclusion This is a textbook candidate for stable backporting. It is a surgical, hardware-specific fix that uses existing infrastructure to resolve a real-world issue (log spam/resume behavior) on a production device. It carries negligible risk and aligns perfectly with the "Device Quirks" exception of the stable kernel rules.
**YES**
drivers/platform/x86/amd/pmc/pmc-quirks.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c index 0fadcf5f288ac..404e62ad293a9 100644 --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c @@ -122,6 +122,14 @@ static const struct dmi_system_id fwbug_list[] = { DMI_MATCH(DMI_PRODUCT_NAME, "21A1"), } }, + { + .ident = "ROG Xbox Ally RC73YA", + .driver_data = &quirk_spurious_8042, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "RC73YA"), + } + }, /* https://bugzilla.kernel.org/show_bug.cgi?id=218024 */ { .ident = "V14 G4 AMN",