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