Re: [Qemu-devel] [PATCH 1/2] usb: XHCI shall not halt isochronous endpoints
> On 28 Jan 2019, at 22:05, Yuri Benditovich > wrote: > > 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 Reviewed-by: Dmitry Fleytman > --- > hw/usb/hcd-xhci.c | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c > index 8f1a01a..1a8fd96 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, ); > if (sctx == NULL) { > -- > 2.9.5 >
[Qemu-devel] [PATCH 1/2] 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 --- hw/usb/hcd-xhci.c | 5 + 1 file changed, 5 insertions(+) diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index 8f1a01a..1a8fd96 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, ); if (sctx == NULL) { -- 2.9.5