On Fri, 16 May 2008, Jiri Slaby wrote: > static const struct hid_device_id hid_blacklist[] = { > + { 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) }, > { } > }; This shouldn't be needed as soon as the userspace supports the proper module autoloading, right? > +#define LOGITECH_RDESC 0x1 > + > +/* > + * Certain Logitech keyboards send in report #3 keys which are far > + * above the logical maximum described in descriptor. This extends > + * the original value of 0x28c of logical maximum to 0x104d > + */ > +static void lg_report_fixup(struct hid_device *hdev, __u8 *rdesc, > + unsigned int rsize) > +{ > + if (rsize >= 90 && rdesc[83] == 0x26 > + && rdesc[84] == 0x8c > + && rdesc[85] == 0x02) { > + dev_info(&hdev->dev, "fixing up Logitech keyboard report " > + "descriptor\n"); > + rdesc[84] = rdesc[89] = 0x4d; > + rdesc[85] = rdesc[90] = 0x10; > + } > +} > + > +static const struct hid_device_id lg_devices[] = { > + { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER), > + .driver_data = LOGITECH_RDESC }, > + { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER), > + .driver_data = LOGITECH_RDESC }, > + { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER_2), > + .driver_data = LOGITECH_RDESC }, > + { } You set the LOGITECH_RDESC flag here, but it is then never used anywhere. I guess that your original intent was to check for this flag in lg_report_fixup(), right? Thanks, -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html