[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks.
From: |
David Ahern |
Subject: |
Re: [Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks. |
Date: |
Mon, 06 Jun 2011 07:34:56 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Thunderbird/3.1.10 |
On 06/06/2011 06:39 AM, Gerd Hoffmann wrote:
> 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 */
Why drop this case too? As I recall that is needed for proper execution.
David
> -
> - 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);
> }
- [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, 2011/06/06
- Re: [Qemu-devel] [PATCH 13/31] usb-ehci: drop EXECUTING checks.,
David Ahern <=
[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