[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 25/37] ehci: tweak queue initialization
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 25/37] ehci: tweak queue initialization |
Date: |
Thu, 7 Jun 2012 11:31:14 +0200 |
Little tweak for the queue initialization, set the QH address in the
allocation function.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/usb/hcd-ehci.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
index ccaa947..aa67af6 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -692,13 +692,14 @@ static void ehci_free_packet(EHCIPacket *p)
/* queue management */
-static EHCIQueue *ehci_alloc_queue(EHCIState *ehci, int async)
+static EHCIQueue *ehci_alloc_queue(EHCIState *ehci, uint32_t addr, int async)
{
EHCIQueueHead *head = async ? &ehci->aqueues : &ehci->pqueues;
EHCIQueue *q;
q = g_malloc0(sizeof(*q));
q->ehci = ehci;
+ q->qhaddr = addr;
QTAILQ_INIT(&q->packets);
QTAILQ_INSERT_HEAD(head, q, next);
trace_usb_ehci_queue_action(q, "alloc");
@@ -1672,12 +1673,11 @@ static EHCIQueue *ehci_state_fetchqh(EHCIState *ehci,
int async)
entry = ehci_get_fetch_addr(ehci, async);
q = ehci_find_queue_by_qh(ehci, entry, async);
if (NULL == q) {
- q = ehci_alloc_queue(ehci, async);
+ q = ehci_alloc_queue(ehci, entry, async);
}
p = QTAILQ_FIRST(&q->packets);
- q->qhaddr = entry;
- q->seen++;
+ q->seen++;
if (q->seen > 1) {
/* we are going in circles -- stop processing */
ehci_set_state(ehci, async, EST_ACTIVE);
--
1.7.1
- [Qemu-devel] [PULL 00/37] usb patch queue, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 02/37] uhci: use bottom half, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 23/37] ehci: move ehci_flush_qh, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 14/37] xhci: trace: run+stop, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 28/37] ehci: schedule async bh on async packet completion, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 25/37] ehci: tweak queue initialization,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 08/37] usb-storage: remove MSDState->residue, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 03/37] uhci: make bandwidth tunable, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 17/37] xhci: trace: endpoints, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 29/37] ehci: kick async schedule on wakeup, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 05/37] uhci: zap uhci_pre_save, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 30/37] ehci: fix reset, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 04/37] uhci: fix trace format strings, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 09/37] usb-storage: add usb_msd_packet_complete(), Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 32/37] ehci: update status bits in ehci_set_state, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 27/37] ehci: move async schedule to bottom half, Gerd Hoffmann, 2012/06/07