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