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