VOOZH about

URL: https://www.phoronix.com/news/Linux-Multi-Battery-HID-Devices

⇱ Linux Proposal Aims To Overcome Kernel Limitation Affecting Various Gaming Peripherals - Phoronix


👁 Phoronix

Linux Proposal Aims To Overcome Kernel Limitation Affecting Various Gaming Peripherals

Written by Michael Larabel in Hardware on 11 November 2025 at 12:39 PM EST. 10 Comments
The Linux kernel's Human Interface Devices (HID) subsystem has an existing architectural limitation that there is just up to one battery per HID device. But with modern devices -- especially among various gaming peripherals -- there can be more than one battery when considering earbuds with a battery for each earbud, multi-device wireless receivers, etc. A proposal was raised today to address this limitation.

Lucas Zampieri of Red Hat sent out the patch today proposing support for multiple batteries per HID devices to overcome this HID subsystem limitation of assuming up to just one battery per device/

👁 Logitech unifying receiver


Some of the multi-battery device scenarios considered as part of this proposal included:
"Multiple battery scenarios that cannot be properly reported today:

1. Gaming headsets with charging docks (e.g., SteelSeries Arctis Nova Pro Wireless) - headset battery reported, dock battery invisible
2. Graphics tablets with stylus batteries (Wacom) - requires driver-specific workarounds
3. Wireless earbuds with per-earbud batteries plus charging case
4. Multi-device receivers (Logitech Unifying) - requires proprietary HID++ protocol parsing

This forces manufacturers to use proprietary protocols and vendor-specific software. Community projects parse USB packets directly because standard HID battery reporting cannot handle multi-battery scenarios."

As for the proposal while retaining backwards compatibility:
"## Why This Matters

The current limitation creates a cycle: OS lacks support, so manufacturers implement proprietary protocols, which makes vendor software necessary, which reduces pressure to fix the OS limitation. Improving HID core support for multiple batteries would enable standardized reporting, reduce the need for vendor software, improve OS integration, reduce driver duplication, and provide a foundation for future multi-battery devices.

## Proposed Solution

This patch introduces struct hid_battery to encapsulate individual battery state, adds a batteries list to struct hid_device for tracking multiple batteries, and uses report ID-based identification. The implementation maintains full backwards compatibility with existing single-battery code."

So assuming this proposal goes through, Linux HID drivers would be able to properly report multiple batteries independently per HID device.

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.