Reported to libinput, [Logitech G604 metal wheel unintended scroll
caused by high resolution setting enforced by kernel
drivers](https://gitlab.freedesktop.org/libinput/libinput/-/issues/949)
and isolated to kernel modules hid_logitech_dj/hid_logitech_hidpp,
though dj is for receiver setup.
The G604 exhibits extremely sensitive scroll wheel, so much so, that a
minor jolt (from lifting and bringing the mouse back down on a surface),
is enough to generate unintentional wheel scroll.
The problem is in hardware, caused by a trivial "bounce" of the metal
scroll wheel, and can be mitigated by lightly holding the wheel with one
finger. Even so, this unintended wheel scrolling doesn't occur in
Windows 10/11 or Android OS. It is suspected that the hires scroll
wheel is not enabled in those operating systems. A quirk is needed to
override and force lowres scroll wheel sensitivity.
hidpp initializes the mouse and sets the sensitivity such that it
persists through a reboot. Blacklisting hid_logitech_dj/hidpp is not
enough. The mouse must be disconnected from the USB bus, and is
reinitialized upon reconnect.
Please advise on what further information needs to be provided to
facilitate isolation and resolution.
Tested on Manjaro Linux which is rolling release the LTS Kernel 6.6.1,
details found at [Manjaro
releases](https://forum.manjaro.org/c/announcements/stable-updates/12)
Blacklisting just hid_logitech_dj (the lightspeed receiver) is enough to
clear the issue, as this effectively prevents both dj and hidpp from
being loaded.
Without hid-logitech-dj/hidpp the G604 is identified as Logitech
Wireless Mouse PID:4085 Mouse; with, it is registered as Logitech G604.
[hid-ids.h](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/drivers/hid/hid-ids.h)
[hid-logitech-hidpp](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/drivers/hid/hid-logitech-hidpp.c)
[hid-logitech-dj](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/drivers/hid/hid-logitech-dj.c)
modinfo hid-logitech-dj has alias for G604:
lsusb
Bus 001 Device 010: ID 046d:c539 Logitech, Inc. Lightspeed Receiver
modinfo hid-logitech-dj
filename:
/lib/modules/6.6.1-1-MANJARO/kernel/drivers/hid/hid-logitech-dj.ko.zst
author: nlopezcasad@xxxxxxxxxxxx
author: Nestor Lopez Casado
author: Logitech
license: GPL
srcversion: 012CD0C907AC711AE721D02
alias: hid:b0003g*v0000046Dp0000C539
depends: usbhid
grep -i hid_logitech_ /lib/modules/$(uname -r)/modules.alias
alias hid:b0003g*v0000046Dp0000C539 hid_logitech_dj
evt=22 ; udevadm info -an /dev/input/event"$evt" |grep -B3 DRIVERS==
looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1.1/1-5.1.1.1/1-5.1.1.1.2/1-5.1.1.1.2:1.2/0003:046D:C539.0004/0003:046D:4085.000B':
KERNELS=="0003:046D:4085.000B"
SUBSYSTEMS=="hid"
DRIVERS=="logitech-hidpp-device"
--
looking at parent device
'/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1.1/1-5.1.1.1/1-5.1.1.1.2/1-5.1.1.1.2:1.2/0003:046D:C539.0004':
KERNELS=="0003:046D:C539.0004"
SUBSYSTEMS=="hid"
DRIVERS=="logitech-djreceiver"
ID present in hid-ids.h
#define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1 0xc539