[Regression] Logitech BT mouse unusable after commit 532223c8ac57 (still in 6.1-rc8)

From: Rafael J. Wysocki
Date: Tue Dec 06 2022 - 10:04:54 EST


Bastien, Jiri,

Commit 532223c8ac57 ("HID: logitech-hidpp: Enable HID++ for all the Logitech
Bluetooth devices") caused my Logitech Bluetooth mouse to become unusable.

Appended is the change I need to make it work again (note that adding the
device ID to unhandled_hidpp_devices[] doesn't help, so there must be some
significant enough difference in how the two cases are handled in the stack).

Here's what I get in the log without the patch below:

[ 36.710574] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 36.710592] Bluetooth: HIDP socket layer initialized
[ 36.724644] hid-generic 0005:046D:B016.0001: unknown main item tag 0x0
[ 36.725860] input: Bluetooth Mouse M336/M337/M535 Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:1/0005:046D:B016.0001/input/input14
[ 36.728036] input: Bluetooth Mouse M336/M337/M535 Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:1/0005:046D:B016.0001/input/input15
[ 36.728823] input: Bluetooth Mouse M336/M337/M535 Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:1/0005:046D:B016.0001/input/input18
[ 36.731550] hid-generic 0005:046D:B016.0001: input,hidraw0: BLUETOOTH HID v12.03 Mouse [Bluetooth Mouse M336/M337/M535] on 9c:b6:d0:96:8e:c8
[ 36.833039] logitech-hidpp-device 0005:046D:B016.0001: unknown main item tag 0x0
[ 36.999064] logitech-hidpp-device 0005:046D:B016.0001: Device not connected

and here's what I get with it:

[ 43.642546] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 43.642559] Bluetooth: HIDP socket layer initialized
[ 43.652898] hid-generic 0005:046D:B016.0001: unknown main item tag 0x0
[ 43.653833] input: Bluetooth Mouse M336/M337/M535 Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:1/0005:046D:B016.0001/input/input14
[ 43.655025] input: Bluetooth Mouse M336/M337/M535 Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:1/0005:046D:B016.0001/input/input15
[ 43.655400] input: Bluetooth Mouse M336/M337/M535 Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:1/0005:046D:B016.0001/input/input18
[ 43.657521] hid-generic 0005:046D:B016.0001: input,hidraw0: BLUETOOTH HID v12.03 Mouse [Bluetooth Mouse M336/M337/M535] on 9c:b6:d0:96:8e:c8

The only difference seems to be that in the former case the logitech-hidpp
driver tries to bind to the device, but I guess that is expected. However,
when the device ID is added to unhandled_hidpp_devices[], the messages look
exactly like in the "good" case, but the mouse still doesn't work.

Thanks,
Rafael


---
drivers/hid/hid-logitech-hidpp.c | 3 ---
1 file changed, 3 deletions(-)

Index: linux-pm/drivers/hid/hid-logitech-hidpp.c
===================================================================
--- linux-pm.orig/drivers/hid/hid-logitech-hidpp.c
+++ linux-pm/drivers/hid/hid-logitech-hidpp.c
@@ -4367,9 +4367,6 @@ static const struct hid_device_id hidpp_
{ /* MX5500 keyboard over Bluetooth */
HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb30b),
.driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
-
- { /* And try to enable HID++ for all the Logitech Bluetooth devices */
- HID_DEVICE(BUS_BLUETOOTH, HID_GROUP_ANY, USB_VENDOR_ID_LOGITECH, HID_ANY_ID) },
{}
};