|
|
958e1b |
From 0302db9f99761bc53e99cd1c3fbdcec3a3fd13c5 Mon Sep 17 00:00:00 2001
|
|
|
958e1b |
From: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
958e1b |
Date: Fri, 11 Jul 2014 14:20:43 +0200
|
|
|
958e1b |
Subject: [PATCH 09/43] xhci: Init a transfers xhci, slotid and epid member on
|
|
|
958e1b |
epctx alloc
|
|
|
958e1b |
|
|
|
958e1b |
Message-id: <1405088470-24115-11-git-send-email-kraxel@redhat.com>
|
|
|
958e1b |
Patchwork-id: 59823
|
|
|
958e1b |
O-Subject: [RHEL-7.1 qemu-kvm PATCH 10/37] xhci: Init a transfers xhci, slotid and epid member on epctx alloc
|
|
|
958e1b |
Bugzilla: 1075846
|
|
|
958e1b |
RH-Acked-by: Dr. David Alan Gilbert (git) <dgilbert@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
958e1b |
|
|
|
958e1b |
From: Hans de Goede <hdegoede@redhat.com>
|
|
|
958e1b |
|
|
|
958e1b |
Transfers are part of an epctx, which is part of a slot, which is part of
|
|
|
958e1b |
a xhci. Transfers cannot dynamically be moved from one epctx to another,
|
|
|
958e1b |
so once created their xhci, slotid and epid are constant, so lets set these
|
|
|
958e1b |
up at creation time, rather then re-initializing them with the same
|
|
|
958e1b |
value each time a transfer gets submitted.
|
|
|
958e1b |
|
|
|
958e1b |
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
958e1b |
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
958e1b |
(cherry picked from commit 4c5d82ecf1e8fd0720137f7d09fc77d65b51b4d0)
|
|
|
958e1b |
---
|
|
|
958e1b |
hw/usb/hcd-xhci.c | 6 +++---
|
|
|
958e1b |
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
958e1b |
|
|
|
958e1b |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
958e1b |
---
|
|
|
958e1b |
hw/usb/hcd-xhci.c | 6 +++---
|
|
|
958e1b |
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
958e1b |
|
|
|
958e1b |
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
|
|
|
958e1b |
index 61f5329..2daf334 100644
|
|
|
958e1b |
--- a/hw/usb/hcd-xhci.c
|
|
|
958e1b |
+++ b/hw/usb/hcd-xhci.c
|
|
|
958e1b |
@@ -1247,6 +1247,9 @@ static XHCIEPContext *xhci_alloc_epctx(XHCIState *xhci,
|
|
|
958e1b |
epctx->epid = epid;
|
|
|
958e1b |
|
|
|
958e1b |
for (i = 0; i < ARRAY_SIZE(epctx->transfers); i++) {
|
|
|
958e1b |
+ epctx->transfers[i].xhci = xhci;
|
|
|
958e1b |
+ epctx->transfers[i].slotid = slotid;
|
|
|
958e1b |
+ epctx->transfers[i].epid = epid;
|
|
|
958e1b |
usb_packet_init(&epctx->transfers[i].packet);
|
|
|
958e1b |
}
|
|
|
958e1b |
epctx->kick_timer = qemu_new_timer_ns(vm_clock, xhci_ep_kick_timer, epctx);
|
|
|
958e1b |
@@ -2062,9 +2065,6 @@ static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid,
|
|
|
958e1b |
for (i = 0; i < length; i++) {
|
|
|
958e1b |
assert(xhci_ring_fetch(xhci, ring, &xfer->trbs[i], NULL));
|
|
|
958e1b |
}
|
|
|
958e1b |
- xfer->xhci = xhci;
|
|
|
958e1b |
- xfer->epid = epid;
|
|
|
958e1b |
- xfer->slotid = slotid;
|
|
|
958e1b |
xfer->streamid = streamid;
|
|
|
958e1b |
|
|
|
958e1b |
if (epid == 1) {
|
|
|
958e1b |
--
|
|
|
958e1b |
1.8.3.1
|
|
|
958e1b |
|