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?