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
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source