Add a quirk for devices recognized as usb keyboards not to be hooked by

ukbd(4).

PR:		usb/105669
Submitted by:	Henrik Brix Andersen <henrik@brixandersen.dk>
MFC after:	1 week
This commit is contained in:
Florent Thoumie 2006-11-28 21:13:07 +00:00
parent 34028cf7d1
commit 454cb2de5b
4 changed files with 8 additions and 0 deletions

View File

@ -151,6 +151,9 @@ USB_MATCH(ukbd)
if ((*sw->probe)(unit, (void *)arg, 0))
return (UMATCH_NONE);
if (usbd_get_quirks(uaa->device)->uq_flags & UQ_KBD_IGNORE)
return (UMATCH_NONE);
return (UMATCH_IFACECLASS_IFACESUBCLASS_IFACEPROTO);
}

View File

@ -119,6 +119,9 @@ static const struct usbd_quirk_entry {
ANY, { UQ_HID_IGNORE }},
{ USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2,
ANY, { UQ_HID_IGNORE }},
/* Devices which should be ignored by both ukbd and uhid */
{ USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY,
ANY, { UQ_KBD_IGNORE }},
{ 0, 0, 0, { 0 } }
};

View File

@ -56,6 +56,7 @@ struct usbd_quirks {
#define UQ_BROKEN_BIDIR 0x2000 /* printer has broken bidir mode */
#define UQ_OPEN_CLEARSTALL 0x4000 /* device needs clear endpoint stall */
#define UQ_HID_IGNORE 0x8000 /* device should be ignored by hid class */
#define UQ_KBD_IGNORE 0x18000 /* device should be ignored by both kbd and hid class */
};

View File

@ -836,6 +836,7 @@ product CURITEL PC5740 0x3701 Broadband wireless modem
/* Cypress Semiconductor products */
product CYPRESS MOUSE 0x0001 mouse
product CYPRESS THERMO 0x0002 thermometer
product CYPRESS WISPY 0x0bad MetaGeek Wi-Spy
product CYPRESS FMRADIO 0x1002 FM Radio
product CYPRESS SLIM_HUB 0x6560 Slim Hub