Re: [PATCH v3 6/7] HID: asus: add prod-id, quirk for Zenbook Duo keyboard
From: Denis Benato
Date: Sun Oct 18 2026 - 12:57:30 EST
On 10/13/26 12:40, Paolo Pisati wrote:
> From: Luke Jones <luke@xxxxxxxxxx>
A piece of mail header opening a commit? Never seen this.
I'd say remove this: that this comes from Luke can be deducted
in the Signed-off-by.
My question is why has this not been accepted before? Did I miss
this while we transitioned maintainer? If so apologies.
> The 2024/2025/2026 ASUS Zenbook Duo has a similar keyboard setup as
> many of the ROG range of laptops, with the same init sequence and
> control for backlight. Enable the keyboard control and backlight by:
> - adding the product ID for 2024/2025/2026 Zenbook Duo keyboard MCU
> - adding the Bluetooth Zenbook Duo keyboard IDs
>
> Intended for the UX8406-style product line with the fully removable
> keyboard.
>
> The keyboard also exposes its touchpad as a separate HID device with
> the same IDs, an interface of the USB device and a second device over
> Bluetooth, so bind the IDs to the HID_GROUP_GENERIC group only, like
> the ROG Z13 Folio, and leave the touchpad to hid-multitouch.
>
> Fn-lock is left out for now: with QUIRK_HID_FN_LOCK the Fn-lock report
> is sent to every interface of the device, before the handshake, and on
> the UX8407AA that stalled the hotkey interface for good. It can be
> added back once the driver only sends it where and when it belongs.
>
> Signed-off-by: Luke Jones <luke@xxxxxxxxxx>
> Signed-off-by: Joshua Leivenzon <hacker1024@xxxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Ivan Levchenko <me@xxxxxxxxx>
> [pisati: bind the IDs to HID_GROUP_GENERIC only, drop
> QUIRK_HID_FN_LOCK]
> Assisted-by: LLM
Same as all others regarding Assisted-by.
When you have removed the weird start:
Reviewed-by: Denis Benato <denis.benato@xxxxxxxxx>
> Signed-off-by: Paolo Pisati <p.pisati@xxxxxxxxx>
> Tested-by: Rebecca Mara Müller <rebecca.mara@xxxxxxxxx> # UX8407AA
> ---
> drivers/hid/hid-asus.c | 24 ++++++++++++++++++++++++
> drivers/hid/hid-ids.h | 6 ++++++
> 2 files changed, 30 insertions(+)
>
> diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
> index 7b17553e94b6..503396963eeb 100644
> --- a/drivers/hid/hid-asus.c
> +++ b/drivers/hid/hid-asus.c
> @@ -1849,6 +1849,30 @@ static const struct hid_device_id asus_devices[] = {
> QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
> { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
> USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_T101HA_KEYBOARD) },
> + /*
> + * Zenbook Duo detachable keyboards. The touchpad shows up as a
> + * separate HID device with the same IDs, over USB and Bluetooth:
> + * bind to the HID_GROUP_GENERIC group only, like the ROG Z13 Folio,
> + * so that hid-multitouch keeps handling it.
> + */
> + { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_ASUSTEK,
> + USB_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406MA_KEYBOARD),
> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ZENBOOK_DUO_KEYBOARD },
> + { HID_DEVICE(BUS_BLUETOOTH, HID_GROUP_GENERIC, USB_VENDOR_ID_ASUSTEK,
> + BT_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406MA_KEYBOARD),
> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ZENBOOK_DUO_KEYBOARD },
> + { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_ASUSTEK,
> + USB_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406CA_KEYBOARD),
> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ZENBOOK_DUO_KEYBOARD },
> + { HID_DEVICE(BUS_BLUETOOTH, HID_GROUP_GENERIC, USB_VENDOR_ID_ASUSTEK,
> + BT_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406CA_KEYBOARD),
> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ZENBOOK_DUO_KEYBOARD },
> + { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_ASUSTEK,
> + USB_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8407AA_KEYBOARD),
> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ZENBOOK_DUO_KEYBOARD },
> + { HID_DEVICE(BUS_BLUETOOTH, HID_GROUP_GENERIC, USB_VENDOR_ID_ASUSTEK,
> + BT_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8407AA_KEYBOARD),
> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ZENBOOK_DUO_KEYBOARD },
> { }
> };
> MODULE_DEVICE_TABLE(hid, asus_devices);
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index b3aca5aa9176..59f44204d738 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -228,6 +228,12 @@
> #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD 0x1866
> #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2 0x19b6
> #define USB_DEVICE_ID_ASUSTEK_ROG_Z13_FOLIO 0x1a30
> +#define USB_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406MA_KEYBOARD 0x1b2c
> +#define BT_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406MA_KEYBOARD 0x1b2d
> +#define USB_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406CA_KEYBOARD 0x1bf2
> +#define BT_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8406CA_KEYBOARD 0x1bf3
> +#define USB_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8407AA_KEYBOARD 0x1cd7
> +#define BT_DEVICE_ID_ASUSTEK_ZENBOOK_DUO_UX8407AA_KEYBOARD 0x1cd8
> #define USB_DEVICE_ID_ASUSTEK_ROG_Z13_LIGHTBAR 0x18c6
> #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_ALLY 0x1abe
> #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_ALLY_X 0x1b4c