From: Antheas Kapenekakis <lkml@antheas.dev>
To: platform-driver-x86@vger.kernel.org, linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, "Jiri Kosina" <jikos@kernel.org>,
"Benjamin Tissoires" <bentiss@kernel.org>,
"Corentin Chary" <corentin.chary@gmail.com>,
"Luke D . Jones" <luke@ljones.dev>,
"Hans de Goede" <hdegoede@redhat.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Antheas Kapenekakis" <lkml@antheas.dev>
Subject: [PATCH v5 00/11] HID: asus: Add RGB Support to Asus Z13, Ally, unify backlight asus-wmi, and Z13 QOL
Date: Tue, 25 Mar 2025 19:45:49 +0100 [thread overview]
Message-ID: <20250325184601.10990-1-lkml@antheas.dev> (raw)
This is a three part series which does the following:
- Clean init sequence, fix the keyboard of the Z13 (touchpad,fan button)
- Unifies backlight handling to happen under asus-wmi so that all Aura
devices have synced brightness controls and the backlight button works
properly when it is on a USB laptop keyboard instead of one w/ WMI.
- Adds RGB support to hid-asus, solid colors only, and for the ROG Ally
units and the Asus Z13 2025 first.
For more context, see cover letter of V1.
---
V4: https://lore.kernel.org/lkml/20250324210151.6042-1-lkml@antheas.dev/
V3: https://lore.kernel.org/lkml/20250322102804.418000-1-lkml@antheas.dev/
V2: https://lore.kernel.org/all/20250320220924.5023-1-lkml@antheas.dev/
V1: https://lore.kernel.org/all/20250319191320.10092-1-lkml@antheas.dev/
Changes since V4:
- Fix KConfig (reported by kernel robot)
- Fix Ilpo's nits, if I missed anything lmk
Changes since V3:
- Add initializer for 0x5d for old NKEY keyboards until it is verified
that it is not needed for their media keys to function.
- Cover init in asus-wmi with spinlock as per Hans
- If asus-wmi registers WMI handler with brightness, init the brightness
in USB Asus keyboards, per Hans.
- Change hid handler name to asus-UNIQ:rgb:peripheral to match led class
- Fix oops when unregistering asus-wmi by moving unregister outside of
the spin lock (but after the asus reference is set to null)
Changes since V2:
- Check lazy init succeds in asus-wmi before setting register variable
- make explicit check in asus_hid_register_listener for listener existing
to avoid re-init
- rename asus_brt to asus_hid in most places and harmonize everything
- switch to a spinlock instead of a mutex to avoid kernel ooops
- fixup hid device quirks to avoid multiple RGB devices while still exposing
all input vendor devices. This includes moving rgb init to probe
instead of the input_configured callbacks.
- Remove fan key (during retest it appears to be 0xae that is already
supported by hid-asus)
- Never unregister asus::kbd_backlight while asus-wmi is active, as that
- removes fds from userspace and breaks backlight functionality. All
- current mainline drivers do not support backlight hotplugging, so most
userspace software (e.g., KDE, UPower) is built with that assumption.
For the Ally, since it disconnects its controller during sleep, this
caused the backlight slider to not work in KDE.
Changes since V1:
- Add basic RGB support on hid-asus, (Z13/Ally) tested in KDE/Z13
- Fix ifdef else having an invalid signature (reported by kernel robot)
- Restore input arguments to init and keyboard function so they can
be re-used for RGB controls.
- Remove Z13 delay (it did not work to fix the touchpad) and replace it
with a HID_GROUP_GENERIC quirk to allow hid-multitouch to load. Squash
keyboard rename into it.
- Unregister brightness listener before removing work queue to avoid
a race condition causing corruption
- Remove spurious mutex unlock in asus_brt_event
- Place mutex lock in kbd_led_set after LED_UNREGISTERING check to avoid
relocking the mutex and causing a deadlock when unregistering leds
- Add extra check during unregistering to avoid calling unregister when
no led device is registered.
- Temporarily HID_QUIRK_INPUT_PER_APP from the ROG endpoint as it causes
the driver to create 4 RGB handlers per device. I also suspect some
extra events sneak through (KDE had the @@@@@@).
Antheas Kapenekakis (11):
HID: asus: refactor init sequence per spec
HID: asus: prevent binding to all HID devices on ROG
HID: asus: add Z13 folio to generic group for multitouch to work
platform/x86: asus-wmi: Add support for multiple kbd RGB handlers
HID: asus: listen to the asus-wmi brightness device instead of
creating one
platform/x86: asus-wmi: remove unused keyboard backlight quirk
platform/x86: asus-wmi: add keyboard brightness event handler
HID: asus: add support for the asus-wmi brightness handler
HID: asus: add basic RGB support
HID: asus: add RGB support to the ROG Ally units
HID: asus: initialize LED endpoint early for old NKEY keyboards
drivers/hid/Kconfig | 1 +
drivers/hid/hid-asus.c | 359 +++++++++++++++------
drivers/hid/hid-ids.h | 2 +-
drivers/platform/x86/asus-wmi.c | 157 ++++++++-
include/linux/platform_data/x86/asus-wmi.h | 69 ++--
5 files changed, 435 insertions(+), 153 deletions(-)
base-commit: 38fec10eb60d687e30c8c6b5420d86e8149f7557
--
2.49.0
next reply other threads:[~2025-03-25 18:46 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-25 18:45 Antheas Kapenekakis [this message]
2025-03-25 18:45 ` [PATCH v5 01/11] HID: asus: refactor init sequence per spec Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 02/11] HID: asus: prevent binding to all HID devices on ROG Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 03/11] HID: asus: add Z13 folio to generic group for multitouch to work Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 04/11] platform/x86: asus-wmi: Add support for multiple kbd RGB handlers Antheas Kapenekakis
2025-03-26 19:54 ` kernel test robot
2025-03-25 18:45 ` [PATCH v5 05/11] HID: asus: listen to the asus-wmi brightness device instead of creating one Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 06/11] platform/x86: asus-wmi: remove unused keyboard backlight quirk Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 07/11] platform/x86: asus-wmi: add keyboard brightness event handler Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 08/11] HID: asus: add support for the asus-wmi brightness handler Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 09/11] HID: asus: add basic RGB support Antheas Kapenekakis
2025-03-26 8:54 ` Ilpo Järvinen
2025-03-26 9:09 ` Antheas Kapenekakis
2025-03-26 10:24 ` Ilpo Järvinen
2025-03-26 11:00 ` Jiri Kosina
2025-03-30 8:39 ` Antheas Kapenekakis
2025-03-31 8:19 ` Luke D. Jones
2025-03-31 8:35 ` Antheas Kapenekakis
2025-03-25 18:45 ` [PATCH v5 10/11] HID: asus: add RGB support to the ROG Ally units Antheas Kapenekakis
2025-03-30 22:11 ` Luke D. Jones
2025-03-31 7:52 ` Antheas Kapenekakis
2025-04-10 19:39 ` Antheas Kapenekakis
2025-03-25 18:46 ` [PATCH v5 11/11] HID: asus: initialize LED endpoint early for old NKEY keyboards Antheas Kapenekakis
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=20250325184601.10990-1-lkml@antheas.dev \
--to=lkml@antheas.dev \
--cc=bentiss@kernel.org \
--cc=corentin.chary@gmail.com \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luke@ljones.dev \
--cc=platform-driver-x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.