Abstract:
The Linux kernel development team has merged a new round of HID subsystem updates into the Linux 7.4 kernel under development. One of the highlights of this update is the addition of preliminary driver support for the Nintendo Switch 2 controller. The relevant work was completed by developer Vicki Pfau on behalf of Valve. After 16 rounds of patch modifications, it finally entered the Linux mainline kernel. In addition, the new version also adds the Pulsar gaming mouse driver and improves hardware support for some AMD processors, Apple Touch Bar and ASUS ROG Ally handheld consoles.


HID is the abbreviation of Human Interface Device, which is mainly responsible for processing input information from hardware such as keyboards, mice, game controllers, and touch devices. The HID subsystem in the Linux kernel not only needs to identify devices from different manufacturers, but also must handle the unique communication protocols of various devices. As game consoles and wireless controllers become more and more popular, improving HID drivers is of great significance to improving the Linux gaming experience.
The most concerning change this time is that Linux 7.4 introduces a dedicated driver for the Nintendo Switch 2 controller for the first time. The controller of Switch 2 adopts a relatively special interface design: key input and vibration functions are mainly processed through the HID main interface, while other communication operations are completed through independent configuration interfaces. Whether using USB connection or Bluetooth connection, this separated design will increase the complexity of driver development.
In order to solve this problem, the new driver adopts a master-slave separated driver structure. The HID interface serves as the main driver, responsible for processing basic input and vibration-related functions; the configuration interface serves as the auxiliary driver, sharing necessary device resources with the main interface. This design can adapt to the special communication structure of the Switch 2 controller and also lays the foundation for adding more functions in the future.
Currently, the preliminary driver supports the general input functions of Joy-Con 2, Pro Controller 2, and the GameCube controller in the Nintendo Switch Online service. However, this doesn't mean that all features of the Switch 2 controller are fully available under Linux.
The developers pointed out that since Switch 2 uses a non-standard pairing interface, and the existing Bluetooth communication mechanism of the Linux kernel also has certain limitations, it is still necessary to design a dedicated communication interface between the kernel and user space and complete the corresponding adaptation in the BlueZ Bluetooth protocol stack. Therefore, this merger mainly solves the problem of universal HID and USB configuration interface drivers. Bluetooth pairing and other advanced functions still need to be developed.
It is worth noting that this work was performed by Vicki Pfau on behalf of Valve. Valve has long promoted the development of the Linux gaming ecosystem and improved game compatibility on the Linux platform through SteamOS, Steam Deck, and contributions to upstream kernels and graphics drivers. The development of drivers for Nintendo's new generation game console controller also shows that the related work is not limited to Valve's own hardware products.
In addition to Nintendo controllers, Linux 7.4 also adds a new driver called hid-pulsar to support multiple gaming mice of the Pulsar brand. Models tested include the X2 V2, X2H, X2A, and Xlite V3 wireless gaming mice. The new driver can read information such as battery power, battery voltage and charging status, and supports wired connections, as well as connection modes with 1000Hz and 4000Hz polling rates through wireless receivers.
The driver is also compatible with some other brand products that use the same communication protocol, including Kysona M600, ATK and VXE's R1 SE+, Dragonfly R1 Pro and other models. This means that, benefiting from unified protocol support, some non-Pulsar brand mice may also gain corresponding Linux compatibility.
This HID update also expands AMD Sensor Fusion Hub (SFH) driver support for new Ryzen SoCs using AMD Zen 6 architecture. SFH is responsible for handling some sensor-related functions and can be used on devices equipped with related hardware. The new support will help future laptops equipped with new generation AMD processors to better use corresponding sensor capabilities, but the specific functions still depend on the overall hardware configuration.
For Apple devices, Linux 7.4 fixes a power management issue with the Touch Bar. The ASUS ROG Ally handheld console also received power management fixes. Although these changes are not as eye-catching as the new game controller driver, they will help improve the reliability of Linux running on different devices.
In general, the HID subsystem update of Linux 7.4 focuses on expanding the compatibility range of game controllers and mice, while fixing the power management issues of existing hardware. The merger of the Nintendo Switch 2 controller driver is particularly noteworthy as it provides basic support for Linux users using the new generation of Nintendo controllers. However, it is still in the preliminary stage, Bluetooth pairing and some advanced functions have not yet been completed, and the final experience depends on the continued improvement of subsequent kernel and user space software.
Comments