Hi Alan, On Wednesday 18 July 2012 10:59:41 Alan Stern wrote: > On Wed, 18 Jul 2012, Laurent Pinchart wrote: > > When a whole class of devices (possibly from a specific vendor, or > > across multiple vendors) require a quirk, explictly listing all devices > > in the class make the quirks table unnecessarily large. Fix this by > > allowing matching devices based on interface information. > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > > > > > > --- a/drivers/usb/core/hub.c > > +++ b/drivers/usb/core/hub.c > > @@ -2170,6 +2170,8 @@ int usb_new_device(struct usb_device *udev) > > > > udev->dev.devt = MKDEV(USB_DEVICE_MAJOR, > > > > (((udev->bus->busnum-1) * 128) + (udev->devnum-1))); > > > > + usb_detect_interface_quirks(udev); > > + > > This is not good, because it ignores usb_authorize_device(). That's > why I said earlier that the interface quirks should be detected at the > end of usb_enumerate_device(). My bad, sorry. Is there any chance the device can return different descriptors in separate usb_authorize_device() calls, leading to different quirks ? -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html