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