|
From: | Gerd Hoffmann |
Subject: | Re: [Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks. |
Date: | Mon, 06 Jun 2011 16:25:19 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110419 Red Hat/3.1.10-1.el6_0 Thunderbird/3.1.10 |
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"); - } - } -#endifThis 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
[Prev in Thread] | Current Thread | [Next in Thread] |