Bug 217353 - Logitech MX Anywhere 3 scroll wheel works incorrectly over USB dongle
Summary: Logitech MX Anywhere 3 scroll wheel works incorrectly over USB dongle
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: Input Devices (show other bugs)
Hardware: All Linux
: P3 normal
Assignee: drivers_input-devices
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-18 22:40 UTC by vova7890
Modified: 2023-04-25 08:31 UTC (History)
2 users (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg (1.15 KB, text/plain)
2023-04-20 17:15 UTC, vova7890
Details
lsusb (933 bytes, text/plain)
2023-04-20 17:16 UTC, vova7890
Details

Description vova7890 2023-04-18 22:40:07 UTC
Need a solution similar as for https://bugzilla.kernel.org/show_bug.cgi?id=216885 but for the usb dongle.

hid_is_usb(hidpp->hid_dev) always return 0 for the usb dongle. Through bluetooth it's working fine as hid_logitech_hidpp is not loading for this mouse with over BT mode.
Comment 1 The Linux kernel's regression tracker (Thorsten Leemhuis) 2023-04-20 09:33:28 UTC
can you please attach the output of lsusb.py
Comment 2 The Linux kernel's regression tracker (Thorsten Leemhuis) 2023-04-20 09:35:45 UTC
and might be helpful to attach dmesg output with the usb dongle connected as well
Comment 3 vova7890 2023-04-20 17:15:54 UTC
Created attachment 304166 [details]
dmesg
Comment 4 vova7890 2023-04-20 17:16:21 UTC
Created attachment 304167 [details]
lsusb
Comment 5 vova7890 2023-04-20 17:19:09 UTC
Sure, see attachments.

Also, might be useful to add module option to disable hires scroll
Comment 6 The Linux kernel's regression tracker (Thorsten Leemhuis) 2023-04-21 09:22:40 UTC
FWIW, I forwarded your report to the developers:
https://lore.kernel.org/all/5fa67291-98d0-c8d5-ca71-5a86b9adff41@leemhuis.info/

[btw, did this actually work in earlier kernel like 6.0? it sounded like it, but  when I wrote that mail I started to become unsure]
Comment 7 vova7890 2023-04-21 23:33:05 UTC
I think you right. I believe this is regression introduced by hires detection instead of quirk list. Tried it on 5.15(I don't have 6.0) - no issues.
It is detected right, this mouse has hires scroll, but it is works not well. Hiress scroll works, I can see hires events in evtest, but it does this for some weird way as applications sometimes miss reaction for the wheel, another application can't stable scroll forward-backward and stay on the same position(for example drop-down menus). I'm not sure where is the problem hides. I tried both x11 and wayland - same problems. Feels like it sends non-hires events not accurate.

If you need additional information/logs - feel free to ask.
Comment 8 vova7890 2023-04-22 02:21:49 UTC
Hm, looks like it's not a kernel side problem. It is application layer problems. Since kernel starts support for hires events for all supported logitech mouses and libinput already has hires support - it is broke userspace, as it is seems not ready yet for hires wheels.

I created quick for disable hires events by libinput and seems it helps. Maybe someone will be interested:

/etc/libinput/local-overrides.quirks:
[Logitech MX Anywhere 3]
MatchVendor=0x46D
MatchProduct=0x4090
AttrEventCode=-REL_WHEEL_HI_RES;-REL_HWHEEL_HI_RES;


I'm sorry for this false alarm. I updated the kernel and ran into a problems, so thought this is regression
Comment 9 Bastien Nocera 2023-04-25 08:31:56 UTC
I'm going to close this then.

For what it's worth, it was unlikely to be the same problem as https://bugzilla.kernel.org/show_bug.cgi?id=216885 as this particular bug only happened on wired connections: the device, when used on USB, has separate USB interfaces for HID++ events and HID events (including wheel events) which the HID++ driver knows nothing about.

This most certainly wasn't the case with your mouse's wireless dongle. The problem looks like it's with your compositor, desktop environment or apps which don't handle hi-res scroll wheels.

Note You need to log in before you can comment on or make changes to this bug.