Mavroudis Chatzilazaridis
37b36e0765
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:59:15 +01:00
..
2025-12-01 11:45:33 +01:00
2025-05-13 15:53:50 +02:00
2025-11-13 15:37:24 -05:00
2025-08-12 14:49:14 +02:00
2025-11-24 10:37:25 +01:00
2025-02-03 10:56:43 +01:00
2025-11-13 15:37:02 -05:00
2022-12-20 15:30:35 +01:00
2024-06-06 10:52:48 +02:00
2024-10-02 17:23:23 -04:00
2025-12-12 18:40:21 +01:00
2025-06-08 09:07:37 +02:00
2025-02-18 22:01:54 +01:00
2025-07-31 22:36:25 +02:00
2025-11-13 15:37:21 -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-07-31 21:26:05 -07:00
2025-04-24 11:56:38 +02:00
2024-08-27 16:29:55 +02:00
2024-08-27 16:29:55 +02:00
2025-09-22 11:01:37 -07:00
2024-08-27 16:29:55 +02:00
2025-09-12 16:58:28 +02:00
2024-09-05 16:20:56 +02:00
2022-11-21 22:17:10 +01:00
2025-12-12 18:40:22 +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-11-18 22:02:17 +01:00
2024-08-27 16:29:55 +02:00
2024-11-13 10:56:37 +01:00
2025-03-26 13:46:56 +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-04-24 11:31:25 +02:00
2025-12-12 18:40:22 +01:00
2025-08-20 20:03:39 +02:00
2025-12-12 18:40:21 +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
2025-04-24 11:23:08 +02:00
2024-07-10 09:11:27 +02:00
2025-12-12 18:40:20 +01:00
2025-06-08 09:07:37 +02:00
2024-02-13 11:43:55 +01:00
2025-06-20 09:14:43 +02:00
2025-02-07 13:50:59 +01:00
2024-09-06 10:06:02 +02:00
2025-08-20 20:12:42 +02:00
2025-12-18 13:59:15 +01:00
2024-08-27 16:29:55 +02:00
2025-07-03 09:41:57 +02:00
2024-09-05 16:20:56 +02:00
2025-08-07 10:07:06 +02:00
2025-08-29 07:44:14 -07: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:24:37 +02:00
2025-11-24 10:37:25 +01:00
2024-08-27 16:29:55 +02:00
2025-11-24 10:37:39 +01:00
2025-04-05 10:30:12 +02: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-05-22 10:45:12 -07:00
2024-11-22 16:29:57 -08:00
2024-09-30 16:49:42 +01:00
2024-06-06 10:52:48 +02:00
2025-02-03 11:09:05 +01:00
2025-11-24 10:37:40 +01:00
2024-06-06 10:52:48 +02:00
2025-06-08 09:07:37 +02:00
2024-09-05 16:20:57 +02:00
2025-12-12 18:40:22 +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
2023-10-25 18:33:42 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:13 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:13 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:15 +02:00
2025-06-17 10:44:15 +02:00
2023-08-14 11:23:35 +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-12-01 15:12:43 -08:00
2024-12-17 13:14:06 +00:00
2024-08-27 16:29:55 +02:00
2024-06-06 10:52:48 +02:00
2025-06-08 09:07:37 +02:00
2024-06-06 10:52:48 +02:00
2025-08-06 10:02:28 -07:00
2025-10-15 12:03:56 +02:00
2024-08-27 16:29:55 +02:00
2025-04-24 11:48:13 +02:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2025-02-03 22:59:42 +01:00
2024-06-06 10:52:48 +02:00
2024-06-06 10:52:48 +02:00
2022-11-25 17:39:19 +08:00
2023-10-25 16:25:47 +02:00
2025-07-31 22:54:15 +02:00
2023-10-25 16:25:47 +02:00
2025-11-24 10:37:40 +01:00
2025-07-03 09:33:38 +02:00
2024-12-02 11:34:44 -08:00
2025-07-03 09:33:38 +02:00
2025-07-03 09:33:38 +02:00
2025-11-13 15:37:02 -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-06-08 09:07:37 +02:00
2023-08-14 11:14:42 +02:00
2025-02-03 22:47:32 +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:04:00 +02:00
2025-09-12 16:59:05 +02:00
2025-03-26 13:54:04 +01:00
2024-09-27 08:18:43 -07:00
2025-06-11 00:27:10 +02:00
2025-08-12 14:56:35 +02:00
2025-03-04 21:51:04 +01:00
2025-01-09 09:58:28 +01:00