Age | Commit message (Collapse) | Author | Files | Lines |
|
bInterfaceNumber is expected to return the `%02x` format according to
the current kernel sources. Even if that is not true, a user can always
manually specify the hidraw device if the wrong device is detected.
|
|
|
|
Caught by UndefinedBehaviorSanitizer (UBSan):
ltunify.c:785:32: runtime error: load of misaligned address
0x7ffc0e4c38a5 for type 'uint32_t' (aka 'unsigned int'), which
requires 4 byte alignment
|
|
Fix "Unknown protocol 0x0a in devcon notif" errors when trying to list
or pair new devices connected to the Nano receiver with device ID c534.
This receiver is limited to 2 devices only and does not allow unpairing.
Update the hidraw autodetection since the first detected hidraw device
is wrong. Check the interface number, similar to Solaar, this avoids
more complicated HID descriptor parsing.
To confirm whether a device supports the HID++ protocol, either use
`sudo lsusb -v046d:` (without a kernel driver bound to it) or use
hidrd-convert -o spec /sys/class/hidraw/hidrawX/device/report_descriptor output.txt
to find a Vendor-Specific page.
|
|
`devices[dev_idx]` should have been `devices[dev_idx - 1]`, aka `dev`.
|
|
|
|
|
|
|
|
When a touchpad event occurs while the device is being queried (e.g.
for features), then do_io (for do_read) would fail because the report
was not of the correct type (0x20 vs 0x11 for example). To fix this,
make do_read retry reads (within the allowed timeout).
Previously the expected report type was hidden in the msg parameter,
make this expected report type more explicit now in a new parameter.
|
|
Fixes the warning messages below:
$ ltunify unpair 2
Unexpected disconnection type 0000
Device 0x02 Touchpad successfully unpaired
$ ltunify pair
Please turn your wireless device off and on to start pairing.
Found new device, id=0x02 Touchpad
Dev conn notif is expected to be short, got 0x20 instead
Dev conn notif is expected to be short, got 0x20 instead
Dev conn notif is expected to be short, got 0x20 instead
Dev conn notif is expected to be short, got 0x20 instead
Dev conn notif is expected to be short, got 0x20 instead
|
|
This got broken in e2faf04 (version 0.2).
|
|
|
|
|
|
|
|
|
|
|
|
Use basename instead of memcmp with some calculations. Move the hiddraw device
matching outside a block in preparation for adding multiple match conditions.
|
|
|
|
|
|
In case a message does not get a response (user pulled out the receiver,
thunder hit the device, coke has fallen on a keyboard, etc.), do not wait
`for(;;)`. (2 seconds because accessing registers may be slow)
|
|
|
|
Index 0xFF needs an array of size 0x100... This error was caught with
Address Sanitizer while trying to iterate through all registers 0x00..0xFF.
|
|
This reverts commit 7f870c0ca5f27827a411d1ee7a11ef5103432413.
The keyboard register is not too generic
|
|
This reverts commit 0b12a96aa7209ac2e4b3a5bb7b96aff1e116474b.
The keyboard register is not too generic.
|
|
|
|
Warning: I am sleepy so there may be bugs or ugly code. It is tested and works
on a K800 keyboard though (and of course it should abort when trying on my M525
mouse).
|
|
|
|
(*args)[0] is not very obvious, introduce a new variable to avoid one
indirection.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Just in case there are other users of this notification system.
|
|
This changes the behavior of validate_args to return the number of command
arguments. The timeout value for "pair" is also validated and the version
number printed.
|
|
|
|
|
|
The memcpy bug is actually a real one-by-off. Since the msg_long struct is
contained in a union of hidpp_message, this does not lead to
write-past-boundaries (but it may read more than intended).
Some fields of version could be uninitialised (when the register query failed).
Explicitly clear the values to make clang happy.
|
|
|
|
|
|
|
|
|