]> Git Repo - linux.git/commitdiff
HID: logitech-hidpp: Handle timeout differently from busy
authorBastien Nocera <[email protected]>
Wed, 31 May 2023 08:24:28 +0000 (10:24 +0200)
committerJiri Kosina <[email protected]>
Wed, 31 May 2023 14:08:24 +0000 (16:08 +0200)
If an attempt at contacting a receiver or a device fails because the
receiver or device never responds, don't restart the communication, only
restart it if the receiver or device answers that it's busy, as originally
intended.

This was the behaviour on communication timeout before commit 586e8fede795
("HID: logitech-hidpp: Retry commands when device is busy").

This fixes some overly long waits in a critical path on boot, when
checking whether the device is connected by getting its HID++ version.

Signed-off-by: Bastien Nocera <[email protected]>
Suggested-by: Mark Lord <[email protected]>
Fixes: 586e8fede795 ("HID: logitech-hidpp: Retry commands when device is busy")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217412
Signed-off-by: Jiri Kosina <[email protected]>
drivers/hid/hid-logitech-hidpp.c

index 0fcfd85fea0feff39a650348d31380daa0f26706..2246044b163930fc936f5ced963e196814ecee90 100644 (file)
@@ -314,6 +314,7 @@ static int hidpp_send_message_sync(struct hidpp_device *hidpp,
                        dbg_hid("%s:timeout waiting for response\n", __func__);
                        memset(response, 0, sizeof(struct hidpp_report));
                        ret = -ETIMEDOUT;
+                       goto exit;
                }
 
                if (response->report_id == REPORT_ID_HIDPP_SHORT &&
This page took 0.064004 seconds and 4 git commands to generate.