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