40 { USB_DEVICE(0x03f0, 0x0701), .driver_info =
71 { USB_DEVICE(0x04b4, 0x0526), .driver_info =
75 { USB_DEVICE(0x04d8, 0x000c), .driver_info =
79 { USB_DEVICE(0x04e8, 0x6601), .driver_info =
92 { USB_DEVICE(0x0638, 0x0a13), .driver_info =
96 { USB_DEVICE(0x06a3, 0x0006), .driver_info =
112 { USB_DEVICE(0x0926, 0x3333), .driver_info =
122 { USB_DEVICE(0x10d6, 0x2200), .driver_info =
129 { USB_DEVICE(0x1908, 0x1315), .driver_info =
138 static const struct usb_device_id usb_interface_quirk_list[] = {
146 static bool usb_match_any_interface(
struct usb_device *
udev,
151 for (i = 0; i < udev->descriptor.bNumConfigurations; ++
i) {
152 struct usb_host_config *
cfg = &udev->config[
i];
155 for (j = 0; j < cfg->desc.bNumInterfaces; ++
j) {
156 struct usb_interface_cache *
cache;
157 struct usb_host_interface *
intf;
159 cache = cfg->intf_cache[
j];
160 if (cache->num_altsetting == 0)
163 intf = &cache->altsetting[0];
172 static u32 __usb_detect_quirks(
struct usb_device *udev,
177 for (;
id->match_flags;
id++) {
181 if ((id->
match_flags & USB_DEVICE_ID_MATCH_INT_INFO) &&
182 !usb_match_any_interface(udev,
id))
185 quirks |= (
u32)(id->driver_info);
196 udev->quirks = __usb_detect_quirks(udev, usb_quirk_list);
198 dev_dbg(&udev->dev,
"USB quirks for this device: %x\n",
205 udev->persist_enabled = 1;
213 udev->persist_enabled = 1;
221 quirks = __usb_detect_quirks(udev, usb_interface_quirk_list);
225 dev_dbg(&udev->dev,
"USB interface quirks for this device: %x\n",
227 udev->quirks |= quirks;