summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMavroudis Chatzilazaridis <mavchatz@protonmail.com>2025-10-02 22:24:37 +0300
committerJiri Kosina <jkosina@suse.com>2025-10-14 12:55:02 +0300
commit55cafcac080a882fbeea1a49a7338211ff2494db (patch)
treee8abd9ba869808870b2eb1dbec016e7ee83612f9
parent5329fc30cbeabbd8593e5afc3e0f7a5cf86c6ceb (diff)
downloadlinux-55cafcac080a882fbeea1a49a7338211ff2494db.tar.xz
HID: logitech-hidpp: Silence protocol errors on newer lightspeed receivers
When logitech-hidpp tries to communicate with an unreachable device paired to a 046d:c547 lightspeed receiver, the following message is printed to the console: hidpp_root_get_protocol_version: received protocol error 0x08 This occurs because this receiver returns 0x08 (HIDPP_ERROR_UNKNOWN_DEVICE) when a device is unreachable, compared to 0x09 (HIDPP_ERROR_RESOURCE_ERROR) that the older receivers return. This patch silences this harmless error by treating HIDPP_ERROR_UNKNOWN_DEVICE the same as HIDPP_ERROR_RESOURCE_ERROR in hidpp_root_get_protocol_version(). There are other checks for HIDPP_ERROR_RESOURCE_ERROR found in battery-related functions, however this receiver does not trigger them when the device is disconnected. 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>
-rw-r--r--drivers/hid/hid-logitech-hidpp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index aaef405a717e..1d46783384ed 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -969,7 +969,8 @@ static int hidpp_root_get_protocol_version(struct hidpp_device *hidpp)
}
/* the device might not be connected */
- if (ret == HIDPP_ERROR_RESOURCE_ERROR)
+ if (ret == HIDPP_ERROR_RESOURCE_ERROR ||
+ ret == HIDPP_ERROR_UNKNOWN_DEVICE)
return -EIO;
if (ret > 0) {