We may have a problem with the way we match drivers to devices... I quote the following from a semi-private discussion... names have been removed to protect the innocent. The formatting has been changed to improve readability.
--snip! snip!-- >FWIW: I hear off-reflector that the Linux matching algorithm for generic >(mass storage) devices only looks at the bInterface values, and not at >the values in the device descriptor. If this is true then "Linux" will incorrectly assume that a vendor-specific device (bDeviceClass == 0xFF in device descriptor) always means "Mass Storage" when it sees bInterfaceClass == 0x08 in an interface descriptor. The USB 2.0 specification (and all official writing on the subject) allows a vendor-specific device to use the interface descriptor class code in any way it chooses making the interpretation of bInterfaceClass values "vendor-specific." (In other words, a vendor is allowed to make the bInterfaceClass == 0x08 mean Mass Storage, but is not required to do so -- every USB stack must have vendor-specific knowledge of the device in order to correctly interpret class codes in a vendor-specific device.) In point of fact, the official USB-IF table of class codes <http://www.usb.org/developers/defined_class> only clearly lists the bDeviceClass values of 0 and 2 as allowing the interpretation of class information at the interface level. Interpreting interface-level class codes in a device using the Interface Association Descriptor technique is only allowed by text found in the Interface Association Descriptor ECN when bDeviceClass == 0xEF AND bDeviceSubClass == 2 AND bDeviceProtocol == 1. --snip! snip!-- A later message suggests that Windows may suffer from the same bug... It's difficult for me to follow, but it seems to me that we aren't doing this correctly. Matt -- Matthew Dharm Home: [EMAIL PROTECTED] Maintainer, Linux USB Mass Storage Driver Sir, for the hundreth time, we do NOT carry 600-round boxes of belt-fed suction darts! -- Salesperson to Greg User Friendly, 12/30/1997
pgpb5gnliAiZH.pgp
Description: PGP signature
