On Sat, Jan 19, 2008 at 09:25:57PM -0700, Grant Grundler wrote:
> Hi,
> I'm slightly confused by this declaration in drivers/usb/storage/usb.c:
> #define UNUSUAL_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \
> vendorName, productName,useProtocol, useTransport, \
> initFunction, flags) \
> ...
>
> and in unusual.h:
> UAL_DEV( 0x03eb, 0x2002, 0x0100, 0x0100,
> "ATMEL",
> "SND1 Storage",
> US_SC_DEVICE, US_PR_DEVICE, NULL,
> US_FL_IGNORE_RESIDUE),
>
> So US_SC_DEVICE ("Sub Classes" per include/linux/usb_usual.h) is used as a
> wild card for useProtocol and US_PR_DEVICE ("Protocols") is the wildcard for
> useTransport?
No, they aren't wildcards.
The value means "use whatever the device presents". It's not used as a
matching parameter. Matching only happens on VID/PID and revision.
Also, the naming is goofy for a reason. The USB spec calls the numbers
"SubClass" and "Protocol". However, the way they are used, the SubClass
defines the protocol (i.e. language) the device uses; the "Protocol"
defines the transport (i.e. how messages are packed for exchange).
There is no USB-spec field named 'Transport'.
Matt
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
You were using cheat codes too. You guys suck.
-- Greg to General Studebaker
User Friendly, 12/16/1997
pgpAEZt1U8r7p.pgp
Description: PGP signature
