2012-08-30 12:42:27

by Andres Freund

[permalink] [raw]
Subject: regression 3.5->3.6: usb keyboard not working anymore

Hi,

Somewhere between: v3.5-rc6-196-gfdb1335 and v3.6-rc1-355-gddf343f my usb
keyboard/trackpoint combination stopped working. At first I thought that would
be some early merge related issue and waited (yeayea, sorry), but up to v3.6-
rc3-177-gc182ae4 its still not working.
Since then no relevant commits seem to have gone in.

Interestingly the keyboard/mouse is successfully recognized and shows up in
lsub.

With a quick grep I just discovered that a new driver for this (or similar?)
keyboards has been added. I have *not* compiled this in though:
+# CONFIG_HID_LENOVO_TPKBD is not set

Is the new, unconditional, entry in the hid_have_special_driver struct the
problem?
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 8e3a6b2..f695680 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1544,6 +1544,7 @@ static const struct hid_device_id
hid_have_special_driver[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LABTEC,
USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LCPOWER, USB_DEVICE_ID_LCPOWER_LC1000 ) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER_2) },

Other entries seem to be protected via things like:
#if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)

I have somewhat obsoleted my original line of thought in this email, but hell.
Will try this and send a patch if it works.

Greetings,

Andres


Attachments:
dmesg-3.6-rc3 (82.97 kB)
lsusb-3.6-rc3 (947.00 B)
lsusb-3.5-rc6-196 (947.00 B)
config-3.5.0-rc6-andres-00196-gfdb1335 (81.66 kB)
config-3.6.0-rc3-andres-00177-gc182ae4 (82.54 kB)
dmesg-3.5-rc6-196 (163.96 kB)
Download all attachments

2012-08-30 13:07:37

by Andres Freund

[permalink] [raw]
Subject: Re: regression 3.5->3.6: usb keyboard not working anymore

Hi,

On Thursday, August 30, 2012 02:34:25 PM Andres Freund wrote:
> With a quick grep I just discovered that a new driver for this (or
> similar?) keyboards has been added. I have *not* compiled this in though:
> +# CONFIG_HID_LENOVO_TPKBD is not set
>
> Is the new, unconditional, entry in the hid_have_special_driver struct the
> problem?
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 8e3a6b2..f695680 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1544,6 +1544,7 @@ static const struct hid_device_id
> hid_have_special_driver[] = {
> { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X) },
> { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC,
> USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) },
> { HID_USB_DEVICE(USB_VENDOR_ID_LCPOWER, USB_DEVICE_ID_LCPOWER_LC1000 )
> }, + { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD)
> }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER)
> }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER)
> }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER_2)
> },
>
> Other entries seem to be protected via things like:
> #if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
>
> I have somewhat obsoleted my original line of thought in this email, but
> hell. Will try this and send a patch if it works.
Works.

Could somebody integrate the attached patch?

Greetings,

Andres


Attachments:
0001-HID-Continue-to-work-if-the-new-Lenovo-Keyboard-driv.patch (1.53 kB)