Lenovo Legion Go S HID Driver Posted For Linux
([Hardware] 6 Hours Ago
Lenovo Legion Go S)
- Reference: 0001558357
- News link: https://www.phoronix.com/news/Lenovo-Legion-Go-S-HID
- Source link:
The Linux support for the Lenovo Legion Go S gaming handheld continues to be improved upon thanks to the option of having Steam OS on this alternative to the Steam Deck.
The Lenovo Legion Go S has seen a lot of Linux work the past several months from [1]controller support in the mainline kernel to new drivers working their way to the upstream kernel. This week the [2]v13 patch series was posted for the Lenovo Gaming Series of hardware with a proper x86 platform driver for supporting functionality exposed via WMI interfaces on Lenovo gaming hardware from the Legion Go to laptops. That Lenovo WMI driver is hopefully ready for the mainline kernel in the near future -- potentially as soon as Linux v6.17 if this latest round of review goes well.
In addition to that x86 platform driver, a new driver posted yesterday is the Lenovo Legion Go S HID driver. This driver is for supporting the Legion Go S's built-in controller HID configuration interface.
Derek Clark who has been working on much of the Lenovo Legion Go S Linux support wrote in the new [3]HID driver patch series :
"This series adds initial support for the Legion Go S's built-in controller HID configuration interface. In the first patch a new HID uevent property is added, HID_FIRMWARE_VERSION, so as to permit fwupd to read the firmware version of the HID interface without detaching the kernel driver. The second patch adds the ability for an hid_driver to assign new/arbitrary uevent properties for static data that doesn't benefit from having a sysfs entry. The third patch adds the VID and PID for the Lenovo Legion Go S MCU. The fourth patch adds ABI documentation for the config interface introduced in the final patch. The fifth patch introduces the core lenovo-legos-hid driver which acts as a routing interface for the different endpoints. The sixth path introduces the config lenovo-legos-hid driver wich uses both the HID_FIRMWARE_VERSION as well as arbitrary uevent properties. Additional interfaces and config properties are planned to be added in a future series."
Great seeing the Fwupd support for the Lenovo Legion Go S being worked on too as part of this effort.
That nearly 2k lines of HID driver code for the Lenovo Legion Go S handheld is now under review.
[1] https://www.phoronix.com/news/Legion-Go-S-Controller-Linux
[2] https://lore.kernel.org/lkml/20250702033826.1057762-1-derekjohn.clark@gmail.com/
[3] https://lore.kernel.org/lkml/20250703004943.515919-1-derekjohn.clark@gmail.com/
The Lenovo Legion Go S has seen a lot of Linux work the past several months from [1]controller support in the mainline kernel to new drivers working their way to the upstream kernel. This week the [2]v13 patch series was posted for the Lenovo Gaming Series of hardware with a proper x86 platform driver for supporting functionality exposed via WMI interfaces on Lenovo gaming hardware from the Legion Go to laptops. That Lenovo WMI driver is hopefully ready for the mainline kernel in the near future -- potentially as soon as Linux v6.17 if this latest round of review goes well.
In addition to that x86 platform driver, a new driver posted yesterday is the Lenovo Legion Go S HID driver. This driver is for supporting the Legion Go S's built-in controller HID configuration interface.
Derek Clark who has been working on much of the Lenovo Legion Go S Linux support wrote in the new [3]HID driver patch series :
"This series adds initial support for the Legion Go S's built-in controller HID configuration interface. In the first patch a new HID uevent property is added, HID_FIRMWARE_VERSION, so as to permit fwupd to read the firmware version of the HID interface without detaching the kernel driver. The second patch adds the ability for an hid_driver to assign new/arbitrary uevent properties for static data that doesn't benefit from having a sysfs entry. The third patch adds the VID and PID for the Lenovo Legion Go S MCU. The fourth patch adds ABI documentation for the config interface introduced in the final patch. The fifth patch introduces the core lenovo-legos-hid driver which acts as a routing interface for the different endpoints. The sixth path introduces the config lenovo-legos-hid driver wich uses both the HID_FIRMWARE_VERSION as well as arbitrary uevent properties. Additional interfaces and config properties are planned to be added in a future series."
Great seeing the Fwupd support for the Lenovo Legion Go S being worked on too as part of this effort.
That nearly 2k lines of HID driver code for the Lenovo Legion Go S handheld is now under review.
[1] https://www.phoronix.com/news/Legion-Go-S-Controller-Linux
[2] https://lore.kernel.org/lkml/20250702033826.1057762-1-derekjohn.clark@gmail.com/
[3] https://lore.kernel.org/lkml/20250703004943.515919-1-derekjohn.clark@gmail.com/
Danny3