[PATCH 26/28] HID: logitech-hidpp: skip getting pairing info on devs without a long report

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



27 MHz receivers do not support long register reads.

This commit makes the hidpp code skip hidpp_unifying_init(), which gets
the device serial and name through long register reads, on devices which
do not support such reads.

This fixes a 5 second delay during probe caused by hidpp_unifying_init()
waiting for the first long register read to timeout before bailing.

Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
 drivers/hid/hid-logitech-hidpp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index 656a5ce3fe03..b4dc8d26a534 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -3395,7 +3395,9 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id)
 	/* Allow incoming packets */
 	hid_device_io_start(hdev);
 
-	if (hidpp->quirks & HIDPP_QUIRK_UNIFYING)
+	if ((hidpp->quirks & HIDPP_QUIRK_UNIFYING) &&
+	    hidpp_validate_report(hdev, REPORT_ID_HIDPP_LONG,
+				  HIDPP_REPORT_LONG_LENGTH - 1, false))
 		hidpp_unifying_init(hidpp);
 
 	connected = hidpp_root_get_protocol_version(hidpp) == 0;
-- 
2.21.0




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux