|
@@ -1168,6 +1168,8 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
|
|
|
unsigned int i;
|
|
|
int len;
|
|
|
|
|
|
+ if (hdev->quirks & HID_QUIRK_HIDDEV_FORCE)
|
|
|
+ connect_mask |= (HID_CONNECT_HIDDEV_FORCE | HID_CONNECT_HIDDEV);
|
|
|
if (hdev->bus != BUS_USB)
|
|
|
connect_mask &= ~HID_CONNECT_HIDDEV;
|
|
|
if (hid_hiddev(hdev))
|
|
@@ -1757,7 +1759,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 (hid_ignore(hdev))
|
|
|
+ if (!(hdev->quirks & HID_QUIRK_NO_IGNORE) && hid_ignore(hdev))
|
|
|
return -ENODEV;
|
|
|
|
|
|
/* XXX hack, any other cleaner solution after the driver core
|