Hi,
-#if EHCI_DEBUG == 0
- if (qemu_get_clock_ns(vm_clock) / 1000>= ehci->frame_end_usec) {
- if (async) {
- DPRINTF("FETCHENTRY: FRAME timer elapsed, exit state machine\n");
- goto out;
- } else {
- DPRINTF("FETCHENTRY: WARNING "
- "- frame timer elapsed during periodic\n");
- }
- }
-#endif
This check was added to per Section 4 of the EHCI spec -- the HC should
not start transactions that will not be completed before the end of the
micro-frame. If you remove this what causes the EHCI model to take a
breather?
Look at patch #8. That brings a number of state machine changes. One
of them is that the async schedule stops as soon as it notices it walks
in circles (i.e. sees a QH the second time).
- case EST_FETCHENTRY:
- /* fall through */
Why drop this case too? As I recall that is needed for proper execution.
The async schedule doesn't pause in fetchentry state any more (also done
by patch #8).
cheers,
Gerd