X86 platform drivers
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: "Jia Ston" <ston.jia@outlook.com>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Sasha Levin" <sashal@kernel.org>,
	hansg@kernel.org, platform-driver-x86@vger.kernel.org
Subject: [PATCH AUTOSEL 6.17-5.10] platform/x86: huawei-wmi: add keys for HONOR models
Date: Mon, 24 Nov 2025 03:06:15 -0500	[thread overview]
Message-ID: <20251124080644.3871678-1-sashal@kernel.org> (raw)

From: Jia Ston <ston.jia@outlook.com>

[ Upstream commit 5c72329716d0858621021193330594d5d26bf44d ]

HONOR MagicBook X16/X14 models produced in 2025 cannot use the Print
Screen and YOYO keys properly, with the system reporting them as
unknown key presses (codes: 0x028b and 0x028e).

To resolve this, a key_entry is added for both the HONOR Print Screen
key and the HONOR YOYO key, ensuring they function correctly on these
models.

Signed-off-by: Ston Jia <ston.jia@outlook.com>
Link: https://patch.msgid.link/20251029051804.220111-1-ston.jia@outlook.com
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:

### Comprehensive Analysis

1. **Commit Message and Issue Analysis**
  The commit addresses a functional hardware defect on HONOR MagicBook
  X16/X14 laptops (2025 models). The "Print Screen" and "YOYO" keys do
  not generate input events, instead triggering "Unknown key pressed"
  warning logs with scancodes `0x028b` and `0x028e`. This means users
  cannot use these hardware features, which constitutes a real-world bug
  for owners of these devices.

2. **Code Review and Mechanism**
  The fix is a surgical addition to the `huawei_wmi_keymap` array in
  `drivers/platform/x86/huawei-wmi.c`.
    - **Mechanism:** The driver uses `sparse_keymap_entry_from_scancode`
      to translate WMI events into input events. Without these entries,
      the lookup fails, and the driver drops the event.
    - **Change:** Two lines are added:
      ```c
      { KE_KEY,    0x28b, { KEY_NOTIFICATION_CENTER } },
      { KE_KEY,    0x28e, { KEY_PRINT } },
      ```
    - **Dependencies:** `KEY_NOTIFICATION_CENTER` was introduced in
      Linux 5.10. This patch is suitable for stable trees 5.10, 5.15,
      6.1, and 6.6 without modification. Older LTS versions (4.19, 5.4)
      would require a minor adjustment (using a different keycode or
      backporting the definition), but the patch remains conceptually
      valid for them.

3. **Stable Kernel Rules Assessment**
    - **Exception Category:** This commit falls squarely under the
      **"QUIRKS and WORKAROUNDS"** and **"TRIVIAL SUBSYSTEM-SPECIFIC
      ADDITIONS"** exceptions defined in stable kernel rules. Adding
      keymap entries is functionally identical to adding PCI/USB IDs: it
      enables hardware that is currently present but non-functional.
    - **Feature vs. Fix:** While the commit says "add keys," it is
      fixing broken hardware support. The keys physically exist but do
      not work; enabling them is a fix, not a new software feature.
    - **New Hardware on Stable:** While the hardware is from 2025, it is
      common for users to run Long Term Support (LTS) kernels (e.g.,
      Ubuntu LTS, RHEL, or community LTS kernels like 6.6.y) on new
      hardware. Refusing to backport hardware enablement forces these
      users to run bleeding-edge kernels or suffer broken functionality.

4. **Risk vs. Benefit**
    - **Regression Risk:** **Negligible.** The change adds data to a
      static array. It only affects the handling of two specific
      scancodes (`0x28b`, `0x28e`) which previously resulted in an error
      log. It cannot affect existing key mappings or other hardware.
    - **Benefit:** Restores functionality for the "Print Screen" key
      (essential for workflows) and the specific "YOYO" key on supported
      laptops.

5. **Conclusion**
  Although the commit lacks a "Cc: stable" tag, it meets all objective
  criteria for a stable backport. It is an obviously correct, low-risk,
  hardware-enabling fix that fits the "Quirks" exception. It should be
  included to ensure this hardware works correctly on supported LTS
  releases.

### TODO Items
- No further investigation required.

**YES**

 drivers/platform/x86/huawei-wmi.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/platform/x86/huawei-wmi.c b/drivers/platform/x86/huawei-wmi.c
index c3772df34679f..8a4c54089ace3 100644
--- a/drivers/platform/x86/huawei-wmi.c
+++ b/drivers/platform/x86/huawei-wmi.c
@@ -81,6 +81,10 @@ static const struct key_entry huawei_wmi_keymap[] = {
 	{ KE_KEY,    0x289, { KEY_WLAN } },
 	// Huawei |M| key
 	{ KE_KEY,    0x28a, { KEY_CONFIG } },
+	// HONOR YOYO key
+	{ KE_KEY,    0x28b, { KEY_NOTIFICATION_CENTER } },
+	// HONOR print screen
+	{ KE_KEY,    0x28e, { KEY_PRINT } },
 	// Keyboard backlit
 	{ KE_IGNORE, 0x293, { KEY_KBDILLUMTOGGLE } },
 	{ KE_IGNORE, 0x294, { KEY_KBDILLUMUP } },
-- 
2.51.0


             reply	other threads:[~2025-11-24  8:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-24  8:06 Sasha Levin [this message]
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17] platform/x86: intel-uncore-freq: Add additional client processors Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-6.6] platform/x86/amd/pmc: Add spurious_8042 to Xbox Ally Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17] platform/x86/amd/pmc: Add support for Van Gogh SoC Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17] platform/x86/intel/hid: Add Nova Lake support Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-5.4] platform/x86: acer-wmi: Ignore backlight event Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-6.6] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251124080644.3871678-1-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=hansg@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=patches@lists.linux.dev \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=ston.jia@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox