Created by: mchehab
Add support for controlling and events for the MX Anyware 2 High-res Wheel
The high-res wheel allows setting 3 properties:
if the wheel will scroll inverted;
if the wheel will use high-resolution (e. g. will scroll faster);
if the wheel will send HID++ or HID notifications.
Currently, the Logitech HID Kernel driver doesn't handle HID++ wheel notifications. So, when this mode is set, the scroll won't work on apps. It is possible to see the HID++ messages, though, by enabling solaar debug logs.
With this mouse, mouse movement and wheel HID events, on HID mode are like those:
000009159 ms 000008 ms (007961 us EP=83, Dev=6a) >>> 20 03 02 00 00 ff ff ff 00 00 00 00 00 00 00 000009167 ms 000008 ms (007957 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 f0 ff 00 00 00 00 00 00 00 000009175 ms 000008 ms (007905 us EP=83, Dev=6a) >>> 20 03 02 00 00 ff ff ff 00 00 00 00 00 00 00 000009183 ms 000008 ms (007972 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 f0 ff 00 00 00 00 00 00 00 000009191 ms 000008 ms (007940 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 f0 ff 00 00 00 00 00 00 00 000009199 ms 000008 ms (007913 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 f0 ff 00 00 00 00 00 00 00 000009207 ms 000008 ms (077958 us EP=83, Dev=6a) >>> 20 03 02 00 00 ff 0f 00 00 00 00 00 00 00 00 000009285 ms 000078 ms (007967 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 f0 ff 00 00 00 00 00 00 00 000009293 ms 000008 ms (007916 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 f0 ff 00 00 00 00 00 00 00 000009301 ms 000008 ms (615980 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 10 00 00 00 00 00 00 00 00 000009917 ms 000616 ms (007940 us EP=83, Dev=6a) >>> 20 03 02 00 00 00 10 00 00 00 00 00 00 00 00 000009925 ms 000008 ms (007926 us EP=83, Dev=6a) >>> 20 03 02 00 00 01 00 00 00 00 00 00 00 00 00
Those packets start with "20" and have "00" for feature request_id (with is supposed to be DEVICE_FW_VERSION).
Ratchet HID events always come from feature 0x2121.
When the mouse is in HID++, wheel events also come from feature 0x2121.
When called via CLI, solaar show will display the settings for the mouse just after the high-res feature:
11: HIRES WHEEL {2121}
Multiplier: 8
Has invert
Normal wheel motion
Has ratchet switch
Free wheel mode
Low resolution mode
HID notification
Tested on my MX Anywhere 2 device on both CLI and GUI.