From: Paolo Pisati <p.pisati@gmail.com>
To: Jiri Kosina <jikos@kernel.org>, Benjamin Tissoires <bentiss@kernel.org>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
"Luke Jones" <luke@ljones.dev>,
"Joshua Leivenzon" <hacker1024@users.sourceforge.net>,
"Ivan Levchenko" <me@livan.pro>,
"Rebecca Mara Müller" <rebecca.mara@posteo.de>,
"Nathan Chancellor" <nathan@kernel.org>,
"Denis Benato" <denis.benato@linux.dev>
Subject: [PATCH v2 0/7] HID: asus: ASUS Zenbook Duo keyboard support
Date: Fri, 9 Oct 2026 17:34:27 +0200 [thread overview]
Message-ID: <20261009153459.124752-1-p.pisati@gmail.com> (raw)
Add support for the detachable USB/Bluetooth keyboard of the ASUS
Zenbook Duo line (UX8406MA, UX8406CA, UX8407AA): hotkeys, keyboard
backlight and the platform profile key, over both transports.
This patchset is a collective effort, gathered here:
https://github.com/NeroReflex/asusctl/issues/25
v1 was applied to hid.git#for-7.2/asus and dropped again because of a
clang warning. This version fixes that, addresses the review comments
on v1 (Sashiko, Nathan Chancellor, kernel test robot) and the problems
found while testing it on a UX8407AA against 7.3, docked and over
Bluetooth: hotkeys, keyboard backlight, Fn+F profile cycling, and the
touchpad staying with hid-multitouch.
Rebecca Mara Müller posted an independent patch for the UX8407AA
keyboard in August [1]. This series follows it in using
HID_CONNECT_HIDINPUT_FORCE and in binding the USB IDs by group, and
carries her re-sent handshake as the last patch.
Changes in v2:
- Rebase onto hid.git#for-7.4/asus; QUIRK_ZENBOOK_DUO_KEYBOARD moves to
BIT(16) as BIT(15) is taken now.
- Fold the USB descriptor offsets and the padding removal into the
descriptor fixup patch; fix the padding removal, which read past the
end of the descriptor and could write past the end of the new one,
and move the whole remainder of the descriptor instead of 12 bytes,
as the Zenbook Duo collection does not end there (Sashiko).
- End the fixup's branch chain with a plain else so clang does not warn
that rsize_orig may be uninitialized (kernel test robot, Nathan).
- Drop the MyASUS key mapping, which is upstream as KEY_PROG1 now and
matches asus-nb-wmi (Sashiko).
- Use HID_CONNECT_HIDINPUT_FORCE on the vendor interface instead of
injecting a fake keyboard collection into its descriptor (Sashiko
flagged the malformed padding item).
- Cycle the platform profile from the driver's worker instead of the
HID event callback, consume the event, and only build the call when
ACPI_PLATFORM_PROFILE is reachable; v1 did not link on architectures
without ACPI (Sashiko).
- New: cap feature report writes at the declared report length; the
Zenbook Duo does not answer the 64 byte writes the driver sends for
the backlight since 7.3.
- Bind the USB IDs to HID_GROUP_GENERIC so hid-multitouch keeps the
touchpad interfaces, and leave Fn-lock out, see that patch.
- New: re-send the handshake after probe (from Rebecca's patch).
- Use the "HID: asus:" subject prefix, write commit messages for every
patch, and fix the Signed-off-by chains.
Not covered: Fn-lock (see patch 6). On the UX8407AA the screen swap key
sends a Super+P chord by itself; the 0x9c mapping is for the UX8406MA.
v1: https://lore.kernel.org/r/20260513163248.16483-1-p.pisati@gmail.com
[1] https://lore.kernel.org/r/20260811125548.1975748-1-rebecca.mara@posteo.de
Joshua Leivenzon (4):
HID: asus: Fix up Zenbook Duo report descriptors
HID: asus: Add missing Zenbook Duo hotkeys
HID: asus: Force hid-input to bind to the Zenbook Duo hotkey interface
HID: asus: Cycle the platform profile from the Zenbook Duo profile key
Luke Jones (1):
HID: asus: add prod-id, quirk for Zenbook Duo keyboard
Paolo Pisati (1):
HID: asus: Do not send feature reports larger than declared
Rebecca Mara Müller (1):
HID: asus: Re-send the Zenbook Duo keyboard handshake after probe
drivers/hid/hid-asus.c | 178 +++++++++++++++++++++++++++++++++++++----
drivers/hid/hid-ids.h | 6 ++
2 files changed, 169 insertions(+), 15 deletions(-)
base-commit: 8099f9da59f1c338bf88e25b7aa2a7fdf840879c
--
2.43.0
next reply other threads:[~2026-10-09 15:35 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 15:34 Paolo Pisati [this message]
2026-10-09 15:34 ` [PATCH v2 1/7] HID: asus: Fix up Zenbook Duo report descriptors Paolo Pisati
2026-10-09 15:34 ` [PATCH v2 2/7] HID: asus: Add missing Zenbook Duo hotkeys Paolo Pisati
2026-10-09 15:34 ` [PATCH v2 3/7] HID: asus: Force hid-input to bind to the Zenbook Duo hotkey interface Paolo Pisati
2026-10-09 15:34 ` [PATCH v2 4/7] HID: asus: Cycle the platform profile from the Zenbook Duo profile key Paolo Pisati
2026-10-09 15:34 ` [PATCH v2 5/7] HID: asus: Do not send feature reports larger than declared Paolo Pisati
2026-10-09 15:34 ` [PATCH v2 6/7] HID: asus: add prod-id, quirk for Zenbook Duo keyboard Paolo Pisati
2026-10-09 15:34 ` [PATCH v2 7/7] HID: asus: Re-send the Zenbook Duo keyboard handshake after probe Paolo Pisati
2026-10-10 4:44 ` [PATCH v2 0/7] HID: asus: ASUS Zenbook Duo keyboard support Rebecca Mara Müller
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=20261009153459.124752-1-p.pisati@gmail.com \
--to=p.pisati@gmail.com \
--cc=bentiss@kernel.org \
--cc=denis.benato@linux.dev \
--cc=hacker1024@users.sourceforge.net \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luke@ljones.dev \
--cc=me@livan.pro \
--cc=nathan@kernel.org \
--cc=rebecca.mara@posteo.de \
/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
all inboxes | Powered by JetHome®