Linux 7.1 to Fix Long-Standing Battery Reporting Limits for HID Devices
For years, Linux users with high-end gaming peripherals and wireless accessories have faced a frustrating limitation: the operating system often only recognizes a single battery per Human Interface Device (HID). Whether it’s a gaming headset with a separate charging dock or wireless earbuds with a charging case, the kernel’s architectural constraints have frequently left critical power levels invisible. The upcoming Linux 7.1 kernel is set to resolve this by introducing native support for multiple batteries per HID device.
- The Fix: Linux 7.1 updates the HID core code to support a list of batteries with unique report IDs rather than a single battery pointer.
- The Impact: Improved battery visibility for gaming headsets, wireless earbuds, graphics tablets, and multi-device receivers.
- Compatibility: API compatibility is maintained for existing “get battery” calls to prevent system breakage.
- Developer: The patches were developed by Lucas Zampieri of Red Hat.
The “Single Battery” Bottleneck
The Linux kernel’s HID subsystem previously operated under a strict architectural limitation: it assumed there was only one battery per HID device. While this sufficed for simple mice or keyboards, it failed to account for the complexity of modern hardware. This limitation created a problematic cycle: as the OS lacked support, manufacturers implemented proprietary protocols, which in turn made vendor-specific software necessary and reduced the urgency for OS-level fixes ([Phoronix]).
Until now, community projects often had to parse USB packets directly because standard HID battery reporting simply could not handle multi-battery scenarios.
How Linux 7.1 Solves the Problem
To overcome this, Lucas Zampieri has restructured the HID battery code. Instead of the HID device structure pointing to just one battery, it will now maintain a list of batteries, each identified by a unique report ID ([Phoronix]).
Crucially, the development team has ensured that API compatibility remains intact. Code that expects the “get battery” call to point to a single battery will still function, avoiding potential regressions or breakage in existing drivers. These changes are currently queued in the HID for-next Git branch, positioned for the Linux 7.1 merge window in April.
Devices That Will Benefit
The transition to multi-battery support directly impacts several categories of hardware that previously required driver-specific workarounds or proprietary software:
- Gaming Headsets: Devices like the SteelSeries Arctis Nova Pro Wireless, which feature batteries in both the headset and the charging dock, will now be able to report both states.
- Wireless Earbuds: Users will see individual battery levels for each earbud as well as the charging case.
- Graphics Tablets: Wacom tablets with stylus batteries will no longer require specialized workarounds for power reporting.
- Multi-Device Receivers: Hardware such as Logitech Unifying receivers, which previously relied on proprietary HID++ protocol parsing, will have a more standardized path for reporting.
- Split Keyboards: Per-side battery reporting will now be possible for split ergonomic keyboards.
The Next Step: User-Space Integration
While the kernel-level function is complete, the full benefit of this update depends on the broader ecosystem. For users to see these changes in their UI, several updates must occur in the user-space:
- Desktop Environments: GNOME, KDE, and others must improve their labeling and enumeration to display multiple batteries for a single device.
- Systemd: Updates are needed for device-specific battery role mappings.
- Software Adaptation: General user-space software must be adapted to enumerate all available batteries rather than stopping at the first one detected.
Frequently Asked Questions
Will I demand to install fresh drivers for my headset?
No. This is a core change to the Linux kernel’s HID subsystem. Once you update to Linux 7.1 (and the corresponding user-space tools), the reporting should happen natively via the HID core code.

Why does this matter for open-source software?
By supporting these devices natively, Linux reduces the reliance on proprietary vendor software and “closed” protocols, making it easier for community developers to create open-source tools for hardware management.
When will this be available?
The code is currently in the for-next Git branch and is slated for the Linux 7.1 merge window in April 2026.