Commit 6199d23c authored by Bastien Nocera's avatar Bastien Nocera Committed by Jiri Kosina
Browse files

HID: logitech-hidpp: Handle timeout differently from busy



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 586e8fed
("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: default avatarBastien Nocera <hadess@hadess.net>
Suggested-by: default avatarMark Lord <mlord@pobox.com>
Fixes: 586e8fed ("HID: logitech-hidpp: Retry commands when device is busy")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217412


Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 16a9c24f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 &&