Archive-only list for patches
 help / color / mirror / Atom feed
* [PATCH AUTOSEL 6.17-5.10] platform/x86: huawei-wmi: add keys for HONOR models
@ 2025-11-24  8:06 Sasha Levin
  2025-11-24  8:06 ` [PATCH AUTOSEL 6.17] sched_ext: Fix possible deadlock in the deferred_irq_workfn() Sasha Levin
                   ` (19 more replies)
  0 siblings, 20 replies; 21+ messages in thread
From: Sasha Levin @ 2025-11-24  8:06 UTC (permalink / raw)
  To: patches, stable
  Cc: Jia Ston, Ilpo Järvinen, Sasha Levin, hansg,
	platform-driver-x86

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


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

end of thread, other threads:[~2025-11-24  8:07 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-24  8:06 [PATCH AUTOSEL 6.17-5.10] platform/x86: huawei-wmi: add keys for HONOR models Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17] sched_ext: Fix possible deadlock in the deferred_irq_workfn() Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-5.15] HID: elecom: Add support for ELECOM M-XT3URBK (018F) Sasha Levin
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-5.10] pinctrl: qcom: msm: Fix deadlock in pinmux configuration Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17] platform/x86: hp-wmi: Add Omen 16-wf1xxx fan support Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-5.10] samples: work around glibc redefining some of our defines wrong Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-6.6] HID: hid-input: Extend Elan ignore battery quirk to USB Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17] HID: lenovo: fixup Lenovo Yoga Slim 7x Keyboard rdesc 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] sched_ext: Use IRQ_WORK_INIT_HARD() to initialize rq->scx.kick_cpus_irq_work 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] platform/x86: hp-wmi: mark Victus 16-r0 and 16-s0 for victus_s fan and thermal profile 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] platform/x86: hp-wmi: Add Omen MAX 16-ah0xx fan support and thermal profile 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
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-6.6] nvme: fix admin request_queue lifetime Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-6.1] LoongArch: Mask all interrupts during kexec/kdump Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-6.1] HID: apple: Add SONiX AK870 PRO to non_apple_keyboards quirk list Sasha Levin
2025-11-24  8:06 ` [PATCH AUTOSEL 6.17-5.4] bfs: Reconstruct file type when loading from disk Sasha Levin

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