|
@@ -2145,8 +2145,13 @@ static const struct hid_device_id hid_mouse_ignore_list[] = {
|
|
|
{ }
|
|
|
};
|
|
|
|
|
|
-static bool hid_ignore(struct hid_device *hdev)
|
|
|
+bool hid_ignore(struct hid_device *hdev)
|
|
|
{
|
|
|
+ if (hdev->quirks & HID_QUIRK_NO_IGNORE)
|
|
|
+ return false;
|
|
|
+ if (hdev->quirks & HID_QUIRK_IGNORE)
|
|
|
+ return true;
|
|
|
+
|
|
|
switch (hdev->vendor) {
|
|
|
case USB_VENDOR_ID_CODEMERCS:
|
|
|
/* ignore all Code Mercenaries IOWarrior devices */
|
|
@@ -2201,6 +2206,7 @@ static bool hid_ignore(struct hid_device *hdev)
|
|
|
|
|
|
return !!hid_match_id(hdev, hid_ignore_list);
|
|
|
}
|
|
|
+EXPORT_SYMBOL_GPL(hid_ignore);
|
|
|
|
|
|
int hid_add_device(struct hid_device *hdev)
|
|
|
{
|
|
@@ -2212,8 +2218,7 @@ int hid_add_device(struct hid_device *hdev)
|
|
|
|
|
|
/* we need to kill them here, otherwise they will stay allocated to
|
|
|
* wait for coming driver */
|
|
|
- if (!(hdev->quirks & HID_QUIRK_NO_IGNORE)
|
|
|
- && (hid_ignore(hdev) || (hdev->quirks & HID_QUIRK_IGNORE)))
|
|
|
+ if (hid_ignore(hdev))
|
|
|
return -ENODEV;
|
|
|
|
|
|
/*
|