Comment 7 for bug 1825736

Revision history for this message
Tim Starling (tstarling) wrote :

This is sporadically reproducible for me. It's probably a hardware quirk. I have Ubuntu 20.04 with Linux 5.4.0-37-generic. I'm using a "Microsoft Mobile Mouse 4000" which presents itself as 045e:07b2 "Microsoft Corp. 2.4GHz Transceiver v8.0 used by mouse Wireless Desktop 900". The issue only occurs when the transceiver is plugged into a desktop USB hub (MBHUB-43ST presenting as VIA Labs 2109:2813). When it is working, inspecting the event stream with cat /sys/kernel/debug/hid/.../events while slowly scrolling gives a series of events of size 3:

report (size 10) (numbered) = 1a 00 00 00 00 00 03 00 00 00
Button.0001 = 0
Button.0002 = 0
Button.0003 = 0
Button.0004 = 0
Button.0005 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 3
Consumer.HorizontalWheel = 0

Fast scrolling gives events that are some multiple of 3.

After suspend/resume, the events have a size of 1:

report (size 10) (numbered) = 1a 00 00 00 00 00 01 00 00 00
Button.0001 = 0
Button.0002 = 0
Button.0003 = 0
Button.0004 = 0
Button.0005 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 1
Consumer.HorizontalWheel = 0

My reading of the source implies that the kernel is not scaling these events, the numbers are coming straight from the hardware.

The power light on the desktop hub briefly goes off as the laptop enters suspend. This doesn't always happen but seems to be correlated with the mouse breaking.

Removing and re-adding the usbhid kernel module does fix it, but I suspect that's because the device is reset rather than because of any state in the kernel.