Mice behind an ASUS Omni receiver all enumerate with the same usb id
(0b05:1ace), so the regular bus:vid:pid DeviceMatch cannot tell models
apart. Identify the model during probe instead:
- asus-rog-omni-receiver.device is a minimal bootstrap file that only
declares Quirks=OMNI_RECEIVER, so the asus driver gets probed on the
receiver's hidraw nodes
- the probe queries the serial number signature (03 12 12 02) and
matches its prefix against the OmniSignature field of the .device
files, then re-resolves the device data for the identified usb id
- an unknown signature fails the probe with -ENODEV, which also drops
the receiver's keyboard and media control nodes
The Strix Impact III family answers with data two bytes earlier than the
original protocol (code plus params echo instead of code plus pad), so
two quirks cover the new layouts:
- LED_V2: per-zone LED responses with data at offset 4, brightness in
0-100
- SETTINGS_V2: settings and DPI responses with data at offset 4,
rate/debounce/snapping as single bytes
Also write DPI values with two bytes so presets above 12850 dpi work.
Verified on a ROG Strix Impact III Wireless: identification on hidraw4,
all 5 profiles with 8 buttons, 1 LED and DPI presets 400/800/1600/3200,
report rate 1000 Hz, debounce 12 ms, LED brightness 127 (50%). Writes
round-trip and survive a ratbagd restart.
This removes the need of listing every device in meson.build which is a
common enough mistake for new contributors.
And move the validation tests over to test/ so we don't have to list
them in the exclude_files of the install_subdir() command.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>