On Mon, May 13, 2002 at 10:23:48PM +0200, [EMAIL PROTECTED] wrote: > Question number two is the code that selects the endpoint: > > Thus, among all endpoints, one will get the last endpoints that are > bulk-in, bulk-out and interrupt, respectively. > To me that sounds fairly random. > But maybe there is some ordering among the endpoints, so that it > is appropriate to take the last ones in the list?
There should only be one bulk-in, one bulk-out, and at most one interrupt
endpoint. Thus the last is perfectly safe, as it's the only.
> Problem number three is that the above code in storage_probe()
> is called in a loop over all interfaces (in scsiglue.c I suppose)
> but that usb_set_configuration() is not called, so that the endpoint
> sizes will be undefined if the interface is not interface 0.
Umm... the loop is not in the storage driver. The USB core loops over all
unclaimed interfaces for us.
> P.S. Let me repeat the /proc/bus/usb/devices output for the device
> that prompted this discussion.
>
> T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
> D: Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1
> P: Vendor=07cc ProdID=0003 Rev= 0.00
> C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
> I: If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
> I: If#= 0 Alt= 1 #EPs=13 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
> E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=10ms
> E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=88(I) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=08(O) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=89(I) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=09(O) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=8a(I) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=0a(O) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> I: If#= 0 Alt= 2 #EPs=13 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
> E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=10ms
> E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=88(I) Atr=01(Isoc) MxPS= 256 Ivl=1ms
> E: Ad=08(O) Atr=01(Isoc) MxPS= 256 Ivl=1ms
> E: Ad=89(I) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=09(O) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=8a(I) Atr=01(Isoc) MxPS= 16 Ivl=1ms
> E: Ad=0a(O) Atr=01(Isoc) MxPS= 16 Ivl=1ms
Good lord! What the hell is this! This is completely like any usb-storage
device I've ever seen.... Why on earth is usb-storage even trying to claim
this device?
Matt
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
A female who groks UNIX? My universe is collapsing.
-- Mike
User Friendly, 10/11/1998
msg06480/pgp00000.pgp
Description: PGP signature
