1b1995d
From 73a9969c47459ee208d6247999823f2a36ee51fe Mon Sep 17 00:00:00 2001
1b1995d
From: Hans de Goede <hdegoede@redhat.com>
1b1995d
Date: Thu, 1 Mar 2012 16:34:56 +0100
1b1995d
Subject: [PATCH 132/140] usb-ehci: Any packet completion except for NAK
1b1995d
 should set the interrupt
1b1995d
1b1995d
As clearly stated in the 2.3.2 of the EHCI spec, any time USBERRINT get
1b1995d
sets then if the td has its IOC bit set USBINT should be set as well.
1b1995d
1b1995d
This means that for any status except for USB_RET_NAK we should set
1b1995d
USBINT if the IOC bit is set.
1b1995d
1b1995d
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1b1995d
---
1b1995d
 hw/usb-ehci.c |    2 +-
1b1995d
 1 file changed, 1 insertion(+), 1 deletion(-)
1b1995d
1b1995d
diff --git a/hw/usb-ehci.c b/hw/usb-ehci.c
1b1995d
index 11eded7..bc5f591 100644
1b1995d
--- a/hw/usb-ehci.c
1b1995d
+++ b/hw/usb-ehci.c
1b1995d
@@ -1338,7 +1338,7 @@ err:
1b1995d
     q->qh.token ^= QTD_TOKEN_DTOGGLE;
1b1995d
     q->qh.token &= ~QTD_TOKEN_ACTIVE;
1b1995d
 
1b1995d
-    if ((q->usb_status >= 0) && (q->qh.token & QTD_TOKEN_IOC)) {
1b1995d
+    if ((q->usb_status != USB_RET_NAK) && (q->qh.token & QTD_TOKEN_IOC)) {
1b1995d
         ehci_record_interrupt(q->ehci, USBSTS_INT);
1b1995d
     }
1b1995d
 }
1b1995d
-- 
1b1995d
1.7.9.3
1b1995d