From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Amit Chaudhari <amitchaudhari@mac.com>,
Jiri Kosina <jkosina@suse.com>, Sasha Levin <sashal@kernel.org>,
jikos@kernel.org, bentiss@kernel.org,
linux-input@vger.kernel.org
Subject: [PATCH AUTOSEL 6.16-6.6] HID: asus: add support for missing PX series fn keys
Date: Mon, 29 Sep 2025 22:18:17 -0400 [thread overview]
Message-ID: <20250930021831.688479-7-sashal@kernel.org> (raw)
In-Reply-To: <20250930021831.688479-1-sashal@kernel.org>
From: Amit Chaudhari <amitchaudhari@mac.com>
[ Upstream commit 831f70a5b93bd2d9e858ced2c12fab5766ede5e7 ]
Add support for missing hotkey keycodes affecting Asus PX13 and PX16 families
so userspace can use them.
Signed-off-by: Amit Chaudhari <amitchaudhari@mac.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Backport Analysis
**Backport Status: YES**
### Comprehensive Analysis
After extensive investigation of this commit, the code changes, git
history, and related patterns, this commit is an excellent candidate for
backporting to stable kernel trees.
#### What the Commit Does
The commit adds three new HID usage code mappings for Asus keyboard
function keys in `drivers/hid/hid-asus.c:964-997`:
1. **`case 0x4e: KEY_FN_ESC`** - Maps Fn+Esc key functionality
2. **`case 0x7e: KEY_EMOJI_PICKER`** - Maps emoji picker key
3. **`case 0x8b: KEY_PROG1`** - Maps ProArt Creator Hub key (with
explicit comment)
These mappings are added to the existing switch statement that handles
`HID_UP_ASUSVENDOR` usage codes, enabling previously non-functional
hardware keys on Asus PX13 and PX16 laptop families.
#### Why This Should Be Backported
**1. Fixes User-Visible Bug**
- Without this patch, hardware function keys on PX13/PX16 laptops don't
work
- This is a clear hardware support regression affecting real users
- Users cannot access important laptop functionality (Fn keys, Creator
Hub)
**2. Minimal and Contained Change**
- Only 3 lines added to a single switch statement
- No architectural changes or complex logic
- Changes are confined to `drivers/hid/hid-asus.c`
- Pattern: Simple addition of case labels with direct key mappings
**3. Very Low Regression Risk**
- Adding new key mappings cannot break existing functionality
- Keys were previously ignored (returned -1 by default case)
- No existing code paths are modified
- Driver-specific change only affects Asus keyboard users
**4. No Problematic Dependencies**
- `KEY_FN_ESC`: Present since Linux 2.6.11 (ancient, available
everywhere)
- `KEY_EMOJI_PICKER`: Added in v5.12 (April 2021, commit 7b229b13d78d,
already backported to stable)
- `KEY_PROG1`: Standard key code, very old
- All dependencies satisfied in stable kernel trees v5.12+
**5. Follows Established Patterns**
- Similar commit `5ec4596a0ba9a` ("HID: asus: add ROG Ally N-Key ID and
keycodes") was successfully backported to stable (signed by Sasha
Levin)
- Multiple historical commits adding Asus keycodes have been backported
(e.g., `73920f615159`, `74e47b2c52ed`)
- This driver has a strong track record of accepting simple keycode
additions in stable
**6. Meets Stable Kernel Rules**
- Important bugfix (missing hardware support)
- Obviously correct (just mapping hardware codes to standard keycodes)
- Tested in mainline (in v6.17 since August 2025)
- No known issues or reverts
#### Code Change Analysis
The changes are in `drivers/hid/hid-asus.c` at the
`asus_input_mapping()` function. The function checks if the HID usage
page matches `HID_UP_ASUSVENDOR`, then maps vendor-specific usage codes
to standard Linux input key codes using a switch statement.
The three new cases are inserted logically:
- `0x4e` and `0x7e` are placed together near other standard function
keys
- `0x8b` is placed with a comment identifying it as ProArt-specific,
positioned before the other special function keys (ROG key, touchpad
toggle, etc.)
The macro `asus_map_key_clear()` is used consistently with all other
mappings in the driver, ensuring proper registration and clearing of the
key mapping.
#### Target Stable Kernels
This commit should be backported to:
- **All stable kernels v5.12+** (where KEY_EMOJI_PICKER is available)
- Primary focus: v6.1.x (LTS), v6.6.x (LTS), v6.12.x, v6.15.x stable
trees
Users of Asus PX13/PX16 laptops on these kernel versions will
immediately benefit from functional hardware keys.
drivers/hid/hid-asus.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
index d27dcfb2b9e4e..8db9d4e7c3b0b 100644
--- a/drivers/hid/hid-asus.c
+++ b/drivers/hid/hid-asus.c
@@ -974,7 +974,10 @@ static int asus_input_mapping(struct hid_device *hdev,
case 0xc4: asus_map_key_clear(KEY_KBDILLUMUP); break;
case 0xc5: asus_map_key_clear(KEY_KBDILLUMDOWN); break;
case 0xc7: asus_map_key_clear(KEY_KBDILLUMTOGGLE); break;
+ case 0x4e: asus_map_key_clear(KEY_FN_ESC); break;
+ case 0x7e: asus_map_key_clear(KEY_EMOJI_PICKER); break;
+ case 0x8b: asus_map_key_clear(KEY_PROG1); break; /* ProArt Creator Hub key */
case 0x6b: asus_map_key_clear(KEY_F21); break; /* ASUS touchpad toggle */
case 0x38: asus_map_key_clear(KEY_PROG1); break; /* ROG key */
case 0xba: asus_map_key_clear(KEY_PROG2); break; /* Fn+C ASUS Splendid */
--
2.51.0
next prev parent reply other threads:[~2025-09-30 2:18 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-30 2:18 [PATCH AUTOSEL 6.16-6.12] netfs: Prevent duplicate unlocking Sasha Levin
2025-09-30 2:18 ` [PATCH AUTOSEL 6.16-6.1] can: rcar_canfd: Fix controller mode setting Sasha Levin
2025-09-30 2:18 ` [PATCH AUTOSEL 6.16-5.10] tracing: dynevent: Add a missing lockdown check on dynevent Sasha Levin
2025-09-30 2:18 ` [PATCH AUTOSEL 6.16] iommufd: WARN if an object is aborted with an elevated refcount Sasha Levin
2025-09-30 2:18 ` [PATCH AUTOSEL 6.16] HID: intel-thc-hid: intel-quickspi: Add WCL Device IDs Sasha Levin
2025-09-30 2:18 ` [PATCH AUTOSEL 6.16-6.1] can: hi311x: fix null pointer dereference when resuming from sleep before interface was enabled Sasha Levin
2025-09-30 2:18 ` Sasha Levin [this message]
2025-09-30 2:18 ` [PATCH AUTOSEL 6.16-6.6] platform/x86/amd/pmc: Add Stellaris Slim Gen6 AMD to spurious 8042 quirks 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=20250930021831.688479-7-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=amitchaudhari@mac.com \
--cc=bentiss@kernel.org \
--cc=jikos@kernel.org \
--cc=jkosina@suse.com \
--cc=linux-input@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
/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