News: 0001558357

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Lenovo Legion Go S HID Driver Posted For Linux

([Hardware] 6 Hours Ago Lenovo Legion Go S)


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/



Danny3

Long ago, in a finite state far away, there lived a JOVIAL
character named Jack. Jack and his relations were poor. Often their
hash table was bare. One day Jack's parent said to him, "Our matrices
are sparse. You must go to the market to exchange our RAM for some
BASICs." She compiled a linked list of items to retrieve and passed it
to him.
So Jack set out. But as he was walking along a Hamilton path,
he met the traveling salesman.
"Whither dost thy flow chart take thou?" prompted the salesman
in high-level language.
"I'm going to the market to exchange this RAM for some chips
and Apples," commented Jack.
"I have a much better algorithm. You needn't join a queue
there; I will swap your RAM for these magic kernels now."
Jack made the trade, then backtracked to his house. But when
he told his busy-waiting parent of the deal, she became so angry she
started thrashing.
"Don't you even have any artificial intelligence? All these
kernels together hardly make up one byte," and she popped them out the
window...
-- Mark Isaak, "Jack and the Beanstack"