On Tuesday 10 February 2009, Sergei Shtylyov wrote:
>     Though I suspect that in reality these two distinct interrupts will often 
> coalesce as well as DATA1 token should follow IN/OUT pretty quick. What a 
> racy 
> piece of hardware... :-/

Nothing very specific to this hardware, unless it's really
doing something stupid like issuing IRQs for IN/OUT instead
of just the various flavors of DATA.

Control transfers *always* have lots of adjacent packets of
odd types, so unless the hardware takes particular care to
let the software insert delays between e.g.

        - SETUP/DATA then
                * IN/DATA (most allow NAKing here)
                * OUT/DATA (some don't, painful)
        - IN/DATA and status OUT/DATA
        - OUT/DATA and status IN/DATA

then there will be races there.  And delivery of SETUP is
inherently racey ... in the worst case, the host sends one
before the preceding transaction completes.  A common case
that's not quite as bad is getting a SETUP right after the
empty status ack was sent.  That case is usually preventable
by having the peripheral NAK until it's processed all the
IN/OUT data ... but again, not all hardware allows that.

- Dave

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to