958e1b
From 7bb437f63758a301ae64ff0ef56b7d107eaa7d99 Mon Sep 17 00:00:00 2001
958e1b
From: Gerd Hoffmann <kraxel@redhat.com>
958e1b
Date: Fri, 11 Jul 2014 14:20:58 +0200
958e1b
Subject: [PATCH 24/43] xhci iso: allow for some latency
958e1b
958e1b
Message-id: <1405088470-24115-26-git-send-email-kraxel@redhat.com>
958e1b
Patchwork-id: 59829
958e1b
O-Subject: [RHEL-7.1 qemu-kvm PATCH 25/37] xhci iso: allow for some latency
958e1b
Bugzilla: 949385
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
Allow the scheduled transfer time be a bit behind, to
958e1b
compensate for latencies.  Without this xhci will wait
958e1b
way to often for the mfindex wraparound, assuming the
958e1b
scheduled time is in the future just because qemu is
958e1b
a bit behind in processing the iso transfer requests.
958e1b
958e1b
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
958e1b
(cherry picked from commit cc03ff9d0a147a399a11c9f513afa5e06ceee453)
958e1b
---
958e1b
 hw/usb/hcd-xhci.c | 2 +-
958e1b
 1 file changed, 1 insertion(+), 1 deletion(-)
958e1b
958e1b
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
958e1b
---
958e1b
 hw/usb/hcd-xhci.c | 2 +-
958e1b
 1 file changed, 1 insertion(+), 1 deletion(-)
958e1b
958e1b
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
958e1b
index 2799539..75da33d 100644
958e1b
--- a/hw/usb/hcd-xhci.c
958e1b
+++ b/hw/usb/hcd-xhci.c
958e1b
@@ -1980,7 +1980,7 @@ static void xhci_calc_iso_kick(XHCIState *xhci, XHCITransfer *xfer,
958e1b
         xfer->mfindex_kick = ((xfer->trbs[0].control >> TRB_TR_FRAMEID_SHIFT)
958e1b
                               & TRB_TR_FRAMEID_MASK) << 3;
958e1b
         xfer->mfindex_kick |= mfindex & ~0x3fff;
958e1b
-        if (xfer->mfindex_kick < mfindex) {
958e1b
+        if (xfer->mfindex_kick + 0x100 < mfindex) {
958e1b
             xfer->mfindex_kick += 0x4000;
958e1b
         }
958e1b
     }
958e1b
-- 
958e1b
1.8.3.1
958e1b