lkml.org 
[lkml]   [2009]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: "permanently" unbind a device from a driver?
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


\
 
 \ /
  Last update: 2009-01-29 10:45    [W:2.876 / U:0.100 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site