On Tue, 27 Jan 2009, Greg KH wrote: > > Oh, I didn't know. In fact, that's exactly what I was asking in my > > first email in this thread - to have some module parameter or a sysfs > > file which can be touched to stop the module from claiming the device. > > This also helps to debug it, to know the right bits to use.. which I > > don't know... ;) > There is some way to do this, but I can't recall how at the moment. > Try asking the HID maintainer about this. There is a 'quirks=' parameter that can be passed to the usbhid driver. Unfortunately the need for IGNORE_QUIRK went away when the whole hid stuff got converted to proper bus with proper drivers. But for backward userspace compatibility we want to have the HID_IGNORE_QUIRK in place, solely for the purpose of users being able to specify it during the module load, I agree. I currently have this queued in my tree. diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index f0a0f72..eed05a3 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -711,6 +711,9 @@ static int usbhid_parse(struct hid_device *hid) quirks = usbhid_lookup_quirk(le16_to_cpu(dev->descriptor.idVendor), le16_to_cpu(dev->descriptor.idProduct)); + if (quirks & HID_QUIRK_IGNORE) + return -ENODEV; + /* Many keyboards and mice don't like to be polled for reports, * so we will always set the HID_QUIRK_NOGET flag for them. */ if (interface->desc.bInterfaceSubClass == USB_INTERFACE_SUBCLASS_BOOT) { diff --git a/include/linux/hid.h b/include/linux/hid.h index 81aa84d..da481b3 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -270,6 +270,7 @@ struct hid_item { #define HID_QUIRK_INVERT 0x00000001 #define HID_QUIRK_NOTOUCH 0x00000002 +#define HID_QUIRK_IGNORE 0x00000004 #define HID_QUIRK_NOGET 0x00000008 #define HID_QUIRK_BADPAD 0x00000020 #define HID_QUIRK_MULTI_INPUT 0x00000040 -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html