Some XHCI hardware requires dropping the endpoint context before

adding it again.

MFC after:	3 days
Submitted by:	Kohji Okuno <okuno.kohji@jp.panasonic.com>
This commit is contained in:
Hans Petter Selasky 2014-09-22 10:21:42 +00:00
parent 9a9fbc3dbd
commit 090817577b

View file

@ -2248,7 +2248,14 @@ xhci_configure_mask(struct usb_device *udev, uint32_t mask, uint8_t drop)
xhci_ctx_set_le32(sc, &pinp->ctx_input.dwInCtx0, mask);
xhci_ctx_set_le32(sc, &pinp->ctx_input.dwInCtx1, 0);
} else {
xhci_ctx_set_le32(sc, &pinp->ctx_input.dwInCtx0, 0);
/*
* Some hardware requires that we drop the endpoint
* context before adding it again:
*/
xhci_ctx_set_le32(sc, &pinp->ctx_input.dwInCtx0,
mask & XHCI_INCTX_NON_CTRL_MASK);
/* Add new endpoint context */
xhci_ctx_set_le32(sc, &pinp->ctx_input.dwInCtx1, mask);
/* find most significant set bit */