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
From 9b44425d4f9e68b8d5fbc1d4909fd7e580a82f0b Mon Sep 17 00:00:00 2001
From: Andres Freund <[email protected]>
Date: Thu, 30 Aug 2012 14:37:14 +0200
Subject: [PATCH] HID: Continue to work if the new Lenovo Keyboard driver is
 not configured

c1dcad2d32d0252e8a3023d20311b52a187ecda3 added a new driver configured by
HID_LENOVO_TPKBD but made the hid_have_special_driver entry non-optional which
lead to a recognized but non-working device if the new driver wasn't
configured (which is the correct default).

Signed-off-by: Andres Freund <[email protected]>
---
 drivers/hid/hid-core.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 8bf8a64..4bddc5e 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1558,7 +1558,9 @@ 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) },
+#if IS_ENABLED(CONFIG_HID_LENOVO_TPKBD)
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) },
+#endif
 	{ 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) },
-- 
1.7.10.rc3.3.g19a6c.dirty

Reply via email to