From: Armin Wolf <W_Armin@gmx.de>
To: Aaron Erhardt <aer@tuxedocomputers.com>,
Jiri Kosina <jikos@kernel.org>,
Benjamin Tissoires <bentiss@kernel.org>
Cc: wse@tuxedocomputers.com, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 0/2] HID: generic: add LampArray support via hid-lamparray helper
Date: Fri, 4 Sep 2026 22:49:53 +0200 [thread overview]
Message-ID: <456191a9-f914-4bb3-8cb8-90ed25a13b94@gmx.de> (raw)
In-Reply-To: <20260903073602.3815258-1-aer@tuxedocomputers.com>
Am 03.09.26 um 09:35 schrieb Aaron Erhardt:
> Add a new hid-lamparray helper module and integrate it with the
> hid-generic driver.
>
> While more complex lamparray handling should be done in userspace via
> hidraw, providing a small module to add basic lamparray support makes it
> possible for userspace software to interact with lamparrays by simply
> using well-known APIs of the LED subsystem. One use-case would be to
> enable desktop environments to support keyboard backlight control out of
> the box for HID lamparray devices without having to implement the whole
> HID protocol themselves.
>
> This patch is based on previous discussions:
> https://lore.kernel.org/all/1fb08a74-62c7-4d0c-ba5d-648e23082dcb@tuxedocomputers.com/
>
> The helper provides basic support for devices exposing a
> Lighting/LampArray application collection (usage page 0x59) and
> registers a single-zone RGB LED representation via the LED
> subsystem.
>
> hid-generic now checks for LampArray support after hid_parse() and
> optionally registers a lamparray instance. Failures in the helper
> do not abort device probe to keep the driver logic otherwise unchanged.
>
> LampArray resources are released on driver remove.
>
> This commit was successfully tested on the Microsoft MacroPad reference
> implementation (https://github.com/microsoft/RP2040MacropadHidSample
> 1d6c3ad) and in combination with the tuxedo_nb04_wmi driver, albeit
> only fully functional with a recent fix posted to the LKML
> (https://lore.kernel.org/all/20260826081149.235487-2-aer@tuxedocomputers.com).
Nice work, it works on my ASUS Prime B650-Plus. However the behavior of the brightness
attribute is a bit strange:
- manually setting "brightness" does not change anything (max. is 1)
- setting RGB to "0 0 0" causes "brightness" to become 0
- setting RGB to a non-zero value causes "brightness" to become 1
Any idea why this happens? I can check if the same problems also exists under Windows,
if requested.
Thanks,
Armin Wolf
> v5:
> - Proper hardware detection (no quirks necessary anymore)
> - Add documentation for new sysfs knob
> - Pass limits of the device to sysfs (intesities & brightness)
> - More flexible Kconfig (use tristate)
> - Improved locking
> - Several memory leak and (de-)initialization fixes
> - Don't read current color values from hardware (the HID spec does not
> offer this option)
> - Remove redundant report dump functionality
> v4:
> - Restrict CONFIG_HID_LAMPARRAY to built-in configurations only to fix
> additional randconfig build errors
> v3:
> - Squash V1 and V2 into one patch
> v2:
> - Fix Kconfig to avoid build errors when LEDS_CLASS_MULTICOLOR is
> disabled
>
> Aaron Erhardt (2):
> HID: lamparray: add new LampArray helper module
> HID: generic: add LampArray support via hid-lamparray helper
>
> .../ABI/testing/sysfs-driver-hid-lamparray | 16 +
> drivers/hid/Kconfig | 18 +
> drivers/hid/Makefile | 2 +
> drivers/hid/hid-generic.c | 38 +
> drivers/hid/hid-lamparray.c | 812 ++++++++++++++++++
> include/linux/hid-lamparray.h | 88 ++
> 6 files changed, 974 insertions(+)
> create mode 100644 Documentation/ABI/testing/sysfs-driver-hid-lamparray
> create mode 100644 drivers/hid/hid-lamparray.c
> create mode 100644 include/linux/hid-lamparray.h
>
prev parent reply other threads:[~2026-09-04 20:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-03 7:35 [PATCH v5 0/2] HID: generic: add LampArray support via hid-lamparray helper Aaron Erhardt
2026-09-03 7:35 ` [PATCH v5 1/2] HID: lamparray: add new LampArray helper module Aaron Erhardt
2026-09-03 7:48 ` sashiko-bot
2026-09-03 20:07 ` Werner Sembach
2026-09-04 8:51 ` Aaron Erhardt
2026-09-04 21:30 ` Armin Wolf
2026-09-03 7:35 ` [PATCH v5 2/2] HID: generic: add LampArray support via hid-lamparray helper Aaron Erhardt
2026-09-03 7:46 ` sashiko-bot
2026-09-04 20:49 ` Armin Wolf [this message]
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=456191a9-f914-4bb3-8cb8-90ed25a13b94@gmx.de \
--to=w_armin@gmx.de \
--cc=aer@tuxedocomputers.com \
--cc=bentiss@kernel.org \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=wse@tuxedocomputers.com \
/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