Mavroudis Chatzilazaridis
f0581990db
HID: logitech-hidpp: Do not assume FAP in hidpp_send_message_sync()
...
[ Upstream commit aba7963544 ]
Currently, hidpp_send_message_sync() retries sending the message when the
device returns a busy error code, specifically HIDPP20_ERROR_BUSY, which
has a different meaning under RAP. This ends up being a problem because
this function is used for both FAP and RAP messages.
This issue is not noticeable on older receivers with unreachable devices
since they return HIDPP_ERROR_RESOURCE_ERROR (0x09), which is not equal to
HIDPP20_ERROR_BUSY (0x08).
However, newer receivers return HIDPP_ERROR_UNKNOWN_DEVICE (0x08) which
happens to equal to HIDPP20_ERROR_BUSY, causing unnecessary retries when
the device is not actually busy.
This is resolved by checking if the error response is FAP or RAP and
picking the respective ERROR_BUSY code.
Fixes: 60165ab774 ("HID: logitech-hidpp: rework one more time the retries attempts")
Signed-off-by: Mavroudis Chatzilazaridis <mavchatz@protonmail.com >
Tested-by: Stuart Hayhurst <stuart.a.hayhurst@gmail.com >
Signed-off-by: Jiri Kosina <jkosina@suse.com >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2025-12-18 13:54:41 +01:00
..
2025-12-01 11:43:18 +01:00
2025-05-22 14:29:44 +02:00
2025-11-13 15:34:25 -05:00
2025-03-22 12:54:16 -07:00
2024-10-02 17:23:23 -04:00
2025-11-13 15:34:13 -05:00
2024-06-06 10:52:48 +02:00
2024-10-02 17:23:23 -04:00
2025-12-12 18:37:20 +01:00
2025-03-13 13:01:50 +01:00
2025-11-13 15:34:23 -05:00
2024-08-27 16:29:55 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-09-05 16:20:56 +02:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:30:43 +02:00
2025-09-09 18:58:04 +02:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:29:55 +02:00
2024-09-13 15:39:37 +02:00
2024-08-27 16:29:55 +02:00
2024-06-07 11:08:07 +02:00
2024-09-05 16:20:56 +02:00
2025-12-12 18:37:21 +01:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-08-27 16:29:55 +02:00
2024-12-14 20:03:39 +01:00
2024-08-27 16:29:55 +02:00
2024-10-02 17:23:23 -04:00
2025-03-13 13:02:00 +01:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-09-05 16:20:56 +02:00
2024-08-27 16:29:55 +02:00
2025-06-19 15:32:34 +02:00
2025-12-12 18:37:21 +01:00
2025-09-04 15:31:46 +02:00
2025-12-12 18:37:20 +01:00
2024-08-27 16:29:55 +02:00
2024-07-12 18:28:03 +02:00
2024-09-05 16:20:56 +02:00
2024-10-02 17:23:23 -04:00
2024-07-10 09:11:27 +02:00
2025-07-17 18:37:22 +02:00
2024-10-02 17:23:23 -04:00
2024-09-06 10:06:02 +02:00
2025-09-04 15:31:53 +02:00
2025-12-18 13:54:41 +01:00
2024-08-27 16:29:55 +02:00
2025-08-20 18:30:56 +02:00
2024-09-05 16:20:56 +02:00
2025-10-12 12:57:18 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:29:55 +02:00
2025-10-23 16:20:37 +02:00
2025-11-24 10:35:47 +01:00
2024-08-27 16:29:55 +02:00
2025-11-24 10:35:58 +01:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:29:55 +02:00
2024-09-05 10:55:15 +02:00
2024-06-06 10:52:48 +02:00
2025-04-07 10:08:35 +02:00
2025-11-24 10:35:58 +01:00
2024-06-06 10:52:48 +02:00
2024-08-27 16:29:55 +02:00
2024-09-05 16:20:57 +02:00
2025-12-12 18:37:21 +01:00
2024-06-06 10:52:48 +02:00
2024-08-27 16:29:55 +02:00
2024-06-06 10:52:48 +02:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:29:55 +02:00
2024-09-03 14:00:05 +02:00
2025-02-17 10:05:13 +01:00
2024-08-27 16:29:55 +02:00
2024-06-06 10:52:48 +02:00
2024-10-02 17:23:23 -04:00
2024-06-06 10:52:48 +02:00
2025-03-22 12:54:16 -07:00
2024-09-05 16:20:57 +02:00
2024-08-27 16:29:55 +02:00
2025-05-22 14:29:38 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2025-03-22 12:54:16 -07:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2025-05-22 14:29:38 +02:00
2025-11-24 10:35:58 +01:00
2024-09-05 16:20:57 +02:00
2024-06-19 16:33:10 +02:00
2024-10-02 17:23:23 -04:00
2024-09-05 16:20:57 +02:00
2025-11-13 15:34:13 -05:00
2024-09-05 16:20:57 +02:00
2024-06-06 10:52:48 +02:00
2024-09-05 16:20:57 +02:00
2024-09-05 16:20:57 +02:00
2025-02-21 14:01:15 +01:00
2024-09-05 16:20:57 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2024-08-27 16:29:55 +02:00
2025-10-15 12:00:12 +02:00
2025-04-20 10:15:14 +02:00
2025-04-20 10:15:14 +02:00
2024-09-27 08:18:43 -07:00
2025-07-06 11:01:44 +02:00
2025-09-04 15:31:53 +02:00
2024-09-10 23:47:03 +02:00
2024-10-02 17:23:23 -04:00