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

Attachment: msg06480/pgp00000.pgp
Description: PGP signature

Reply via email to