i.e. you want to use datafab.c for lun #0, but you own driver
    for lun #1..3 ?

My own driver for lun 1, yes.
And in another device precisely the reverse, datafab.c for lun #1
and my own driver for lun #0.

[The thing I mentioned is two USB devices with two luns each,
not one device with four luns.]

    >Such considerations bring me to the desire to have something like
    >      info = ((struct per_lun_data *) us->extra)[lun].data;
    >      kill = ((struct per_lun_data *) us->extra)[lun].destructor;
    >for all drivers in usb-storage.

    Yes and no. There are other drives that have totally different commands
    for each 'lun', but still share status & media change bits.
    In this case you'd have problems distributing the media change information 
    over the different luns.

Ha, media change - I still do not know how to detect that,
understood from Matt that this info is unavailable. But it is?

    As your case is a fairly uncommon one, i'd suggest:
    struct big_6in1_reader_extra_data {
             struct something_for_cf         cf_data;
             struct something_for_sm sm_data;
             ...
    }
    and then, do all the lun <--> xxx_data handling in your transport routine 
    (ie. then swap the us->extra is you really want to use other code this way).

That does not work, since both cf and sm can be active simultaneously.
But us->extra can only hold a single value.

    p.s. got a cat /proc/bus/usb/devices of the reader for us ?

...
T:  Bus=01 Lev=03 Prnt=03 Port=03 Cnt=02 Dev#= 20 Spd=12  MxCh= 4
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0451 ProdID=2046 Rev= 1.25
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms

T:  Bus=01 Lev=04 Prnt=20 Port=00 Cnt=01 Dev#= 22 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0c0b ProdID=a109 Rev=17.08
S:  Manufacturer=ACOMdATA
S:  Product=USB CF+SM
S:  SerialNumber=64FDEA5EFD
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms

T:  Bus=01 Lev=04 Prnt=20 Port=01 Cnt=02 Dev#= 21 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0c0b ProdID=a10c Rev= 2.00
S:  Manufacturer=ACOMdATA
S:  Product=USB SD+MS
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
...

Andries



_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to