Once again the turn-time issue, which is really serious for the usb-storage 
device i'm fighting with, since it can only do max 4k transfers (again this 
EZ-USB thing that doesn't enumerate and therfore doesn't change the 
interfaces).

Trying to optimize following sequence:
- send command to bulk ep 4. I call this the 'master-urb'
- recieve data from bulk ep 2. I call this the 'slave-urb'

I have tried following:

a)
        FILL_BULK_USB(master)  FILL_BULK_USB(slave)
        usb_submit_urb( master )
        usb_submit_urb( slave )

        wait_for( master->status != EINPROGRESS )
        if( master transfer ok ){
                wait_for( slave->status != EINPROGRESS )
        }else{
                usb_unlink_urb( slave)
        }

        On 2.4.2 & 2.4.3 usb-uhci this work very well (and fast) for a few seconds 
an then the
        machine freezes.
        On 2.4.3-pre7 & 2.4.4 this freezes the machine instantly.


b)
        FILL_BULK_USB(master)  FILL_BULK_USB(slave)
        master->next = slave;
        slave->next = 0;

        usb_submit_urb( master )

        wait_for( master->status != EINPROGRESS )
        if( master transfer ok ){
                wait_for( slave->status != EINPROGRESS )
        }else{
                usb_unlink_urb( slave)
        }

        On 2.4.4 usb-uhci this work crashes the machine.
        On 2.4.4 uhci this work nicely for a while and then suddenly stops.

        I guess this is the same issue that Martin Diehl is having ?

        The completion handler i'm using just does the usual wakeup.

c)      Same as a, but only calling
        usb_submit_urb( slave )
        in the completion handler of the master urb.

        Crashes with 2.4.3 usb-uhci. Works lovely with 2.4.4 (both uhci+usb-uhci 
?) but isn't any faster than a
        submit(),wait(),submit(),wait() sequence..


What am I doing wrong / is there any known good way to queue bulk urb to 
different ep's ?

Btw. for the EZ-USB FX interrested: the UISDC & UISDA Flash card readers I 
have (available from www.carry.com.tw) are using a CY7C64613-128NC.
UISDA = SmartMedia + SecureDigital + ATA-Flash
UISDC = SmartMedia + SecureDigital + CompactFlash


- sda

p.s. sigh: reading the mapping table of a 64MB SmartMadia card still takes 
16 seconds ~= 512 bulks/sec.


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to