hid_logitech_dj/hidpp disable high resolution wheel scroll quirk needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux