HID: logitech-dj: add support for the new lightspeed connection iteration
diff mbox series

Message ID 20210123180220.3056430-1-lains@archlinux.org
State Accepted
Commit fab3a95654eea01d6b0204995be8b7492a00d001
Headers show
Series
  • HID: logitech-dj: add support for the new lightspeed connection iteration
Related show

Commit Message

Filipe Laíns Jan. 23, 2021, 6:02 p.m. UTC
From: Filipe Laíns <lains@riseup.net>

This new connection type is the new iteration of the Lightspeed
connection and will probably be used in some of the newer gaming
devices. It is currently use in the G Pro X Superlight.

This patch should be backported to older versions, as currently the
driver will panic when seing the unsupported connection. This isn't
an issue when using the receiver that came with the device, as Logitech
has been using different PIDs when they change the connection type, but
is an issue when using a generic receiver (well, generic Lightspeed
receiver), which is the case of the one in the Powerplay mat. Currently,
the only generic Ligthspeed receiver we support, and the only one that
exists AFAIK, is ther Powerplay.

As it stands, the driver will panic when seeing a G Pro X Superlight
connected to the Powerplay receiver and won't send any input events to
userspace! The kernel will warn about this so the issue should be easy
to identify, but it is still very worrying how hard it will fail :(

[915977.398471] logitech-djreceiver 0003:046D:C53A.0107: unusable device of type UNKNOWN (0x0f) connected on slot 1

Signed-off-by: Filipe Laíns <lains@riseup.net>
---
 drivers/hid/hid-logitech-dj.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Jiri Kosina Feb. 9, 2021, 9:37 a.m. UTC | #1
On Sat, 23 Jan 2021, Filipe Laíns wrote:

> From: Filipe Laíns <lains@riseup.net>
> 
> This new connection type is the new iteration of the Lightspeed
> connection and will probably be used in some of the newer gaming
> devices. It is currently use in the G Pro X Superlight.
> 
> This patch should be backported to older versions, as currently the
> driver will panic when seing the unsupported connection. This isn't
> an issue when using the receiver that came with the device, as Logitech
> has been using different PIDs when they change the connection type, but
> is an issue when using a generic receiver (well, generic Lightspeed
> receiver), which is the case of the one in the Powerplay mat. Currently,
> the only generic Ligthspeed receiver we support, and the only one that
> exists AFAIK, is ther Powerplay.
> 
> As it stands, the driver will panic when seeing a G Pro X Superlight
> connected to the Powerplay receiver and won't send any input events to
> userspace! The kernel will warn about this so the issue should be easy
> to identify, but it is still very worrying how hard it will fail :(

Applied to for-5.11/upstream-fixes, thanks Filipe.

Patch
diff mbox series

diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c
index 45e7e0bdd382..1401ee2067ca 100644
--- a/drivers/hid/hid-logitech-dj.c
+++ b/drivers/hid/hid-logitech-dj.c
@@ -994,7 +994,12 @@  static void logi_hidpp_recv_queue_notif(struct hid_device *hdev,
 		workitem.reports_supported |= STD_KEYBOARD;
 		break;
 	case 0x0d:
-		device_type = "eQUAD Lightspeed 1_1";
+		device_type = "eQUAD Lightspeed 1.1";
+		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
+		workitem.reports_supported |= STD_KEYBOARD;
+		break;
+	case 0x0f:
+		device_type = "eQUAD Lightspeed 1.2";
 		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
 		workitem.reports_supported |= STD_KEYBOARD;
 		break;