From: Yuri Benditovich Date: Mon, 28 Jan 2019 20:05:07 +0000 (+0000) Subject: usb: XHCI shall not halt isochronous endpoints X-Git-Tag: v4.0.0-rc0~130^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a587c832a3f1d6d47dce93bda52c80cfa163e7cf;p=thirdparty%2Fqemu.git usb: XHCI shall not halt isochronous endpoints According to the XHCI spec (4.10.2) the controller never halts isochronous endpoints. This commit prevent stop of isochronous streaming when sporadic errors status received from backends. Signed-off-by: Yuri Benditovich Message-id: 20190128200444.5128-2-yuri.benditovich@janustech.com Signed-off-by: Gerd Hoffmann --- diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index 8f1a01a4055..1a8fd9644e1 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -1571,6 +1571,11 @@ static void xhci_stall_ep(XHCITransfer *xfer) uint32_t err; XHCIStreamContext *sctx; + if (epctx->type == ET_ISO_IN || epctx->type == ET_ISO_OUT) { + /* never halt isoch endpoints, 4.10.2 */ + return; + } + if (epctx->nr_pstreams) { sctx = xhci_find_stream(epctx, xfer->streamid, &err); if (sctx == NULL) {