lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <9c470f55-2f53-4669-b976-9a81d8bfe856@app.fastmail.com>
Date: Sun, 25 Jan 2026 19:53:38 -0500
From: "Mark Pearson" <mpearson-lenovo@...ebb.ca>
To: "Derek J . Clark" <derekjohn.clark@...il.com>,
 "Jiri Kosina" <jikos@...nel.org>, "Benjamin Tissoires" <bentiss@...nel.org>
Cc: "Limonciello, Mario" <mario.limonciello@....com>,
 "Zhixin Zhang" <zhangzx36@...ovo.com>, "Mia Shao" <shaohz1@...ovo.com>,
 "Pierre-Loup A . Griffais" <pgriffais@...vesoftware.com>,
 linux-input@...r.kernel.org, linux-doc@...r.kernel.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 00/16] HID: Add Legion Go and Go S Drivers

On Fri, Jan 23, 2026, at 8:48 PM, Derek J. Clark wrote:
> This series adds configuration driver support for the Legion Go S,
> Legion Go, and Legion Go 2 built-in controller HID interfaces. This
> allows for configuring hardware specific attributes such as the auso
> sleep timeout, rumble intensity, etc. non-configuration reports are
> forwarded to the HID subsystem to ensure no loss of functionality in
> userspace. Basic gamepad functionality is provided through xpad, while
> advanced features are currently only implemented in userspace daemons
> such as InputPlumber[1]. I plan to move this functionality into the
> kernel in a later patch series.
>
> Three new device.h macros are added that solve a fairly specific
> problem. Many of the attributes need to have the same name as other
> attributes when they are in separate attribute subdirectories. The
> previous version of this series, along with the upcoming his-asus-ally
> driver[2] use this macro to simplify the sysfs by removing redundancy.
> An upcoming out of tree driver for the Zotac Zone [3] also found this
> macro to be useful. This greatly reduces the path length and term
> redundancy of file paths in the sysfs, while also allowing for cleaner
> subdirectories that are grouped by functionality. Rather than carry the
> same macro in four drivers, it seems beneficial to me that we include the
> macro with the other device macros.
>
> A new HID uevent property is also added, HID_FIRMWARE_VERSION, so as to
> permit fwupd to read the firmware version of the Go S HID interface without
> detaching the kernel driver.
>
> Finally, there are some checkpatch warnings that will need to be supressed:
> WARNING: ENOSYS means 'invalid syscall nr' and nothing else
> 1292: FILE: drivers/hid/lenovo-legos-hid/lenovo-legos-hid-config.c:1085:
> +       case -ENOSYS: /* during rmmod -ENOSYS is expected */
>
> This error handling case was added as it is experienced in the real world
> when the driver is rmmod. The LED subsystem produces this error code in
> its legacy code and this is not a new novel use of -ENOSYS, we are simply
> catching the case to avoid spurious errors in dmesg when the drivers are
> removed.
>
> [1]: 
> https://github.com/ShadowBlip/InputPlumber/tree/main/src/drivers/lego
> [2]: https://lore.kernel.org/all/20240806081212.56860-1-luke@ljones.dev/
> [3]: 
> https://github.com/flukejones/linux/tree/wip/zotac-zone-6.15/drivers/hid/zotac-zone-hid
>
> Signed-off-by: Derek J. Clark <derekjohn.clark@...il.com>
> ---
> Change Log
> V3:
>   - Fix Documentation formatting by removing extra + characters
>   - Fix bugs in hid-lenovo-go-s IMU & TP RO attributes being tied to the
>     wrong _show function.
>   - Rename enume os_mode_index to os_mode_types_index to fix collision
>     with os_mode_index attribute.
>   - Remove accidental rename for enabled->enable attributes in patch 4
>   - Add SOB for Mario in patch 10 as Co-Developer
> V2: 
> https://lore.kernel.org/linux-input/20251229031753.581664-1-derekjohn.clark@gmail.com/
>   - Break up adding the Go S driver into feature specific patches
>   - Rename Go S driver from lenovo-legos-hid to hid-lenovo-go-s
>   - Drop the arbitrary uevent properties patch
>   - Add Go serires driver
>   - Move DEVICE_ATTR_NAMED macros to device.h
> V1: 
> https://lore.kernel.org/linux-input/20250703004943.515919-1-derekjohn.clark@gmail.com/
>
>
> Derek J. Clark (15):
>   include: device.h: Add named device attributes
>   HID: hid-lenovo-go: Add Lenovo Legion Go Series HID Driver
>   HID: hid-lenovo-go: Add Feature Status Attributes
>   HID: hid-lenovo-go: Add Rumble and Haptic Settings
>   HID: hid-lenovo-go: Add FPS Mode DPI settings
>   HID: hid-lenovo-go: Add RGB LED control interface
>   HID: hid-lenovo-go: Add Calibration Settings
>   HID: hid-lenovo-go: Add OS Mode Toggle
>   HID: hid-lenovo-go-s: Add Lenovo Legion Go S Series HID Driver
>   HID: hid-lenovo-go-s: Add MCU ID Attribute
>   HID: hid-lenovo-go-s: Add Feature Status Attributes
>   HID: hid-lenovo-go-s: Add Touchpad Mode Attributes
>   HID: hid-lenovo-go-s: Add RGB LED control interface
>   HID: hid-lenovo-go-s: Add IMU and Touchpad RO Attributes
>   HID: Add documentation for Lenovo Legion Go drivers
>
> Mario Limonciello (1):
>   HID: Include firmware version in the uevent
>
>  .../ABI/testing/sysfs-driver-hid-lenovo-go    |  724 +++++
>  .../ABI/testing/sysfs-driver-hid-lenovo-go-s  |  304 +++
>  MAINTAINERS                                   |   11 +
>  drivers/hid/Kconfig                           |   24 +
>  drivers/hid/Makefile                          |    2 +
>  drivers/hid/hid-core.c                        |    5 +
>  drivers/hid/hid-ids.h                         |    7 +
>  drivers/hid/hid-lenovo-go-s.c                 | 1577 +++++++++++
>  drivers/hid/hid-lenovo-go.c                   | 2399 +++++++++++++++++
>  include/linux/device.h                        |   46 +
>  include/linux/hid.h                           |    1 +
>  11 files changed, 5100 insertions(+)
>  create mode 100644 Documentation/ABI/testing/sysfs-driver-hid-lenovo-go
>  create mode 100644 Documentation/ABI/testing/sysfs-driver-hid-lenovo-go-s
>  create mode 100644 drivers/hid/hid-lenovo-go-s.c
>  create mode 100644 drivers/hid/hid-lenovo-go.c
>
> -- 
> 2.52.0

For the series - all looks good to me.
Reviewed-by: Mark Pearson <mpearson-lenovo@...ebb.ca>

Mark

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ