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