linux/drivers/usb/core
Alan Stern 93c8bf45e0 USB core: don't match interface descriptors for vendor-specific devices
This patch (as804) makes USB driver matching ignore the interface
class, subclass, and protocol if the device class is Vendor Specific.
Drivers can override this policy by specifying a Vendor ID as part
of the match; then vendor-specific matches are allowed.

Linus Walleij has reported a problem this patch fixes.  When a
particular mass-storage device is switched from mass-storage mode to
Media Transfer Protocol, the interface class remains set to mass-storage
and usb-storage binds to it erroneously, even though the device class
changes to Vendor-Specific.

This may cause a problem for some drivers until their match records can
be updated to include Vendor IDs.  But if it does, then those records
were broken to begin with.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-12-01 14:23:27 -08:00
..
buffer.c usbcore: trim down usb_bus structure 2006-09-27 11:58:56 -07:00
config.c usb: deal with broken config descriptors 2006-09-27 11:58:55 -07:00
devices.c USB: Remove unneeded void * casts in core files 2006-09-27 11:58:59 -07:00
devio.c usb devio: handle class_device_create() error 2006-10-17 14:46:32 -07:00
driver.c USB core: don't match interface descriptors for vendor-specific devices 2006-12-01 14:23:27 -08:00
endpoint.c usbcore: fix endpoint device creation 2006-10-17 14:46:32 -07:00
file.c fix file specification in comments 2006-10-03 23:01:26 +02:00
generic.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
hcd-pci.c USB: Properly unregister reboot notifier in case of failure in ehci hcd 2006-09-27 11:58:54 -07:00
hcd.c usb hub: fix root hub code so it takes more than 15 devices per root hub 2006-12-01 14:23:26 -08:00
hcd.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
hub.c usb hub: fix root hub code so it takes more than 15 devices per root hub 2006-12-01 14:23:26 -08:00
hub.h usb/hub: allow hubs up to 31 children 2006-12-01 14:23:26 -08:00
inode.c [PATCH] usb: fixup usb so it uses struct pid 2006-10-02 07:57:15 -07:00
Kconfig [PATCH] USB: remove devfs information from Kconfig 2006-07-12 16:03:23 -07:00
Makefile usbcore: move code among source files 2006-09-27 11:58:50 -07:00
message.c USB: Fixed outdated usb_get_device_descriptor() documentation 2006-11-16 14:26:12 -08:00
notify.c usbfs: private mutex for open, release, and remove 2006-09-27 11:58:49 -07:00
otg_whitelist.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysfs.c USB: fix __must_check warnings in drivers/usb/core/ 2006-09-27 11:58:57 -07:00
urb.c USB: Remove unneeded void * casts in core files 2006-09-27 11:58:59 -07:00
usb.c fix file specification in comments 2006-10-03 23:01:26 +02:00
usb.h [PATCH] usb: fixup usb so it uses struct pid 2006-10-02 07:57:15 -07:00