Logitech G502 X (046d:c099): REL_WHEEL_HI_RES always reports ±120

From: Sebastian Thomae <hidden>
Date: 2026-07-14 05:54:31

Hi,

This is my first bug report to the list, and i used a LLM to help 
translate and collect all information, i hope this is fine.

Kernel: 7.1.3-arch1-1
libinput: 1.31.3
DE: KDE Plasma 6 (Wayland)
Device: Logitech G502 X (wired)
USB ID: |046d:c099|
The device is bound to |hid-generic| and is not handled by 
|hid-logitech-hidpp|.
|$ grep C099 /lib/modules/$(uname -r)/modules.alias (no output) $ lsmod 
| grep hid_logitech (no output)|
*
**Problem*
The device advertises and emits |REL_WHEEL_HI_RES|, but every wheel 
event reports exactly:
|REL_WHEEL ±1 REL_WHEEL_HI_RES ±120|
No intermediate high-resolution values are ever generated, regardless of 
wheel speed.
As a result, scrolling behaves identically to a traditional detented 
mouse wheel, even when the mouse is configured for high-resolution 
scrolling.

Using Solaar:
|hires-smooth-resolution = True
hires-scroll-mode = False|
does not change the event stream.
|
hires-scroll-mode = True
|disables the sending of wheel events (at least libinput and evdev see none)
*
libinput debug-events*
Example output:
|POINTER_SCROLL_WHEEL vert 15.00/120.0*|
The output is always based on 120-unit wheel events.
*
libinput record*
Each wheel notch produces:
|EV_REL REL_WHEEL 1 EV_REL REL_WHEEL_HI_RES 120|
No events with values smaller than 120 are ever observed.
*
HID descriptor*
The mouse exposes:
|REL_WHEEL REL_WHEEL_HI_RES|
However, the HID report descriptor does not appear to expose a 
Resolution Multiplier feature for the wheel.
*
Expected behaviour*
If the device supports high-resolution scrolling, I would expect 
|REL_WHEEL_HI_RES| to provide intermediate values (or multiple smaller 
events) rather than always reporting ±120.
If this device is expected to behave differently, could you clarify 
whether support for USB device |046d:c099| is currently incomplete, or 
whether additional HID initialization is required?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help