[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks.
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks. |
Date: |
Mon, 6 Jun 2011 14:39:04 +0200 |
The state machine doesn't stop in EXECUTING state any more when async
packets are in flight, so the checks are not needed any more and can
be dropped.
Also kick out the check for the frame timer. As we don't stop & sleep
any more on async packets this is obsolete.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/usb-ehci.c | 32 ++------------------------------
1 files changed, 2 insertions(+), 30 deletions(-)
diff --git a/hw/usb-ehci.c b/hw/usb-ehci.c
index e345a1c..8b1ae3a 100644
--- a/hw/usb-ehci.c
+++ b/hw/usb-ehci.c
@@ -1437,17 +1437,6 @@ static int ehci_state_fetchentry(EHCIState *ehci, int
async)
int again = 0;
uint32_t entry = ehci_get_fetch_addr(ehci, async);
-#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
if (entry < 0x1000) {
DPRINTF("fetchentry: entry invalid (0x%08x)\n", entry);
ehci_set_state(ehci, async, EST_ACTIVE);
@@ -1952,12 +1941,6 @@ static void ehci_advance_async_state(EHCIState *ehci)
}
ehci_set_state(ehci, async, EST_WAITLISTHEAD);
- /* fall through */
-
- case EST_FETCHENTRY:
- /* fall through */
-
- case EST_EXECUTING:
ehci_advance_state(ehci, async);
break;
@@ -2010,11 +1993,6 @@ static void ehci_advance_periodic_state(EHCIState *ehci)
ehci_advance_state(ehci, async);
break;
- case EST_EXECUTING:
- DPRINTF("PERIODIC state adv for executing\n");
- ehci_advance_state(ehci, async);
- break;
-
default:
/* this should only be due to a developer mistake */
fprintf(stderr, "ehci: Bad periodic state %d. "
@@ -2063,11 +2041,7 @@ static void ehci_frame_timer(void *opaque)
if (frames - i > 10) {
skipped_frames++;
} else {
- // TODO could this cause periodic frames to get skipped if async
- // active?
- if (ehci_get_state(ehci, 1) != EST_EXECUTING) {
- ehci_advance_periodic_state(ehci);
- }
+ ehci_advance_periodic_state(ehci);
}
ehci->last_run_usec += FRAME_TIMER_USEC;
@@ -2082,9 +2056,7 @@ static void ehci_frame_timer(void *opaque)
/* Async is not inside loop since it executes everything it can once
* called
*/
- if (ehci_get_state(ehci, 0) != EST_EXECUTING) {
- ehci_advance_async_state(ehci);
- }
+ ehci_advance_async_state(ehci);
qemu_mod_timer(ehci->frame_timer, expire_time);
}
--
1.7.1
- [Qemu-devel] [PATCH 00/31] usb patch queue, Gerd Hoffmann, 2011/06/06
- [Qemu-devel] [PATCH 04/31] usb-ehci: trace port state, Gerd Hoffmann, 2011/06/06
- [Qemu-devel] [PATCH 01/31] usb-linux: catch ENODEV in more places., Gerd Hoffmann, 2011/06/06
- [Qemu-devel] [PATCH 02/31] usb-ehci: trace mmio and usbsts, Gerd Hoffmann, 2011/06/06
- [Qemu-devel] [PATCH 03/31] usb-ehci: trace state machine changes, Gerd Hoffmann, 2011/06/06
- [Qemu-devel] [PATCH 14/31] Fix USB mouse Set_Protocol behavior, Gerd Hoffmann, 2011/06/06
- [Qemu-devel] [PATCH 11/31] ehci: fix a number of unused-but-set-variable warnings (new with gcc-4.6), Gerd Hoffmann, 2011/06/06
- [Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks.,
Gerd Hoffmann <=
[Qemu-devel] [PATCH 12/31] usb: cancel async packets on unplug, Gerd Hoffmann, 2011/06/06
[Qemu-devel] [PATCH 06/31] usb-ehci: trace buffer copy, Gerd Hoffmann, 2011/06/06
[Qemu-devel] [PATCH 09/31] usb-ehci: fix offset writeback in ehci_buffer_rw, Gerd Hoffmann, 2011/06/06
[Qemu-devel] [PATCH 10/31] usb-ehci: fix error handling., Gerd Hoffmann, 2011/06/06
[Qemu-devel] [PATCH 05/31] usb-ehci: improve mmio tracing, Gerd Hoffmann, 2011/06/06
[Qemu-devel] [PATCH 08/31] usb-ehci: multiqueue support, Gerd Hoffmann, 2011/06/06