Commit 9f6b3727 authored by Pascal Terjan's avatar Pascal Terjan Committed by Jiri Kosina

HID: Use hid blacklist in usbmouse/usbkbd

This fixes wacom tablets not working if usbmouse is loaded.
Signed-off-by: default avatarPascal Terjan <pterjan@mandriva.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 628edcde
...@@ -911,6 +911,8 @@ u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct) ...@@ -911,6 +911,8 @@ u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct)
return quirks; return quirks;
} }
EXPORT_SYMBOL_GPL(usbhid_lookup_quirk);
/* /*
* Cherry Cymotion keyboard have an invalid HID report descriptor, * Cherry Cymotion keyboard have an invalid HID report descriptor,
* that needs fixing before we can parse it. * that needs fixing before we can parse it.
......
...@@ -235,6 +235,12 @@ static int usb_kbd_probe(struct usb_interface *iface, ...@@ -235,6 +235,12 @@ static int usb_kbd_probe(struct usb_interface *iface,
if (!usb_endpoint_is_int_in(endpoint)) if (!usb_endpoint_is_int_in(endpoint))
return -ENODEV; return -ENODEV;
if (usbhid_lookup_quirk(le16_to_cpu(dev->descriptor.idVendor),
le16_to_cpu(dev->descriptor.idProduct))
& HID_QUIRK_IGNORE) {
return -ENODEV;
}
pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress); pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);
maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe)); maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
......
...@@ -131,6 +131,12 @@ static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_i ...@@ -131,6 +131,12 @@ static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_i
if (!usb_endpoint_is_int_in(endpoint)) if (!usb_endpoint_is_int_in(endpoint))
return -ENODEV; return -ENODEV;
if (usbhid_lookup_quirk(le16_to_cpu(dev->descriptor.idVendor),
le16_to_cpu(dev->descriptor.idProduct))
& (HID_QUIRK_IGNORE|HID_QUIRK_IGNORE_MOUSE)) {
return -ENODEV;
}
pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress); pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);
maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe)); maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment