2007-06-27 14:58:30

by Antonino Ingargiola

[permalink] [raw]
Subject: [Possible BUG] Logitech USB keyboard inconsistent led state

Dear Kernel Developers,

I'm using a logitech USB keyboard, I think it's one of the most cheap
and diffuse logitech keyboard models.

I have an inconsistent led state. During boot the NumLock led blinks
several times and is on as boot finishes. However the numeric keypad
works as it was off (no numbers, keypad '.' works as Canc, '0' as Ins
and so on).

To restore a consistent state I have to press one key that change one
of the 3 leds on the keyboards: NumLock, CapsLock or ScrollLock.

Once I pressed one of those key the NumLock led turns off and,
eventually, another led turns on. After this if I press NumLock I have
the keypad enabled.

I'm able to reproduce the problem only once after a system boot (with
or without X). Unplugging the keyboard and unloading/reloading all the
usb stack always gives again a consistent state.

The problem is reproduced with various kernels from 2.6.18 official
debian etch build, until 2.6.22-rc5-cfs-v18-cfs.

Some keyboard info from dmesg:

kernel: usb 1-1.2: new low speed USB device using uhci_hcd and address 5
kernel: usb 1-1.2: Product: USB Multimedia Keyboard
kernel: usb 1-1.2: Manufacturer: BTC
kernel: usb 1-1.2: configuration #1 chosen from 1 choice
kernel: input: BTC USB Multimedia Keyboard as /class/input/input8
kernel: input: USB HID v1.10 Keyboard [BTC USB Multimedia Keyboard] on
usb-0000:00:07.2-1.2
kernel: input: BTC USB Multimedia Keyboard as /class/input/input9
kernel: input,hiddev96: USB HID v1.10 Device [BTC USB Multimedia
Keyboard] on usb-0000:00:07.2-1.2

If you need further information just ask.


Regards,

~ Antonio


2007-06-27 19:46:58

by Jiri Kosina

[permalink] [raw]
Subject: Re: [Possible BUG] Logitech USB keyboard inconsistent led state

On Wed, 27 Jun 2007, Antonino Ingargiola wrote:

> I'm using a logitech USB keyboard, I think it's one of the most cheap
> and diffuse logitech keyboard models.
> I have an inconsistent led state. During boot the NumLock led blinks
> several times and is on as boot finishes. However the numeric keypad
> works as it was off (no numbers, keypad '.' works as Canc, '0' as Ins
> and so on).

Could you please send me vendor and product ids of the keyboard? I will
send you a patch to test.

Thanks,

--
Jiri Kosina

2007-06-28 07:59:33

by Antonino Ingargiola

[permalink] [raw]
Subject: Re: [Possible BUG] Logitech USB keyboard inconsistent led state

2007/6/27, Jiri Kosina <[email protected]>:
> On Wed, 27 Jun 2007, Antonino Ingargiola wrote:
>
> > I'm using a logitech USB keyboard, I think it's one of the most cheap
> > and diffuse logitech keyboard models.
> > I have an inconsistent led state. During boot the NumLock led blinks
> > several times and is on as boot finishes. However the numeric keypad
> > works as it was off (no numbers, keypad '.' works as Canc, '0' as Ins
> > and so on).
>
> Could you please send me vendor and product ids of the keyboard? I will
> send you a patch to test.

Sure, here it is:

$ cat /sys/bus/usb/devices/1-1.2/idVendor
046d
$ cat /sys/bus/usb/devices/1-1.2/idProduct
c311


Best regards,

~ Antonio

2007-06-28 17:24:18

by Jiri Kosina

[permalink] [raw]
Subject: Re: [Possible BUG] Logitech USB keyboard inconsistent led state

On Thu, 28 Jun 2007, Antonino Ingargiola wrote:

> $ cat /sys/bus/usb/devices/1-1.2/idVendor
> 046d
> $ cat /sys/bus/usb/devices/1-1.2/idProduct
> c311

Please try the patch below (against any post-2.6.22-rc1 kernel)

diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index f6c4145..adc3752 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -196,6 +196,7 @@
#define USB_VENDOR_ID_LOGITECH 0x046d
#define USB_DEVICE_ID_LOGITECH_RECEIVER 0xc101
#define USB_DEVICE_ID_LOGITECH_WHEEL 0xc294
+#define USB_DEVICE_ID_LOGITECH_KBD 0xc311
#define USB_DEVICE_ID_S510_RECEIVER 0xc50c
#define USB_DEVICE_ID_S510_RECEIVER_2 0xc517
#define USB_DEVICE_ID_MX3000_RECEIVER 0xc513
@@ -448,6 +449,7 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY, HID_QUIRK_POWERBOOK_HAS_FN | HID_QUIRK_IGNORE_MOUSE },

{ USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_W7658, HID_QUIRK_RESET_LEDS },
+ { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_KBD, HID_QUIRK_RESET_LEDS },

{ USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1, HID_QUIRK_SWAPPED_MIN_MAX },
{ USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2, HID_QUIRK_SWAPPED_MIN_MAX },

--
Jiri Kosina

2007-06-28 20:09:16

by Antonino Ingargiola

[permalink] [raw]
Subject: Re: [Possible BUG] Logitech USB keyboard inconsistent led state

2007/6/28, Jiri Kosina <[email protected]>:
> On Thu, 28 Jun 2007, Antonino Ingargiola wrote:
>
> > $ cat /sys/bus/usb/devices/1-1.2/idVendor
> > 046d
> > $ cat /sys/bus/usb/devices/1-1.2/idProduct
> > c311
>
> Please try the patch below (against any post-2.6.22-rc1 kernel)

Tried on 2.6.22-rc6-cfs18 and it works, thanks :)

Now the led is off by default on boot but the state is consistent.

Can we have this patch in 2.6.22?

(Feel free to add a Tested off with my name is this make any sense in
this case).


Best Regards,

~ Antonio

2007-06-28 20:39:27

by Jiri Kosina

[permalink] [raw]
Subject: Re: [Possible BUG] Logitech USB keyboard inconsistent led state

On Thu, 28 Jun 2007, Antonino Ingargiola wrote:

> Tried on 2.6.22-rc6-cfs18 and it works, thanks :)
> Now the led is off by default on boot but the state is consistent.
> Can we have this patch in 2.6.22?
> (Feel free to add a Tested off with my name is this make any sense in
> this case).

I will queue it in my tree for next upstream merge, thanks.

--
Jiri Kosina