diff options
| author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2016-08-29 08:44:35 +0000 |
|---|---|---|
| committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2016-08-29 08:44:35 +0000 |
| commit | b6add95c5d1d44f16d769ac81058a62809913a2a (patch) | |
| tree | 15dae906e856a5bb2d55eda31e7494a626279982 /sys/dev | |
| parent | b3838482056ec25df69c4b7d36c75ed9d0debc4e (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/usb/controller/xhci.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/dev/usb/controller/xhci.c b/sys/dev/usb/controller/xhci.c index 8d42c88f9059..b1ea3abe03cf 100644 --- a/sys/dev/usb/controller/xhci.c +++ b/sys/dev/usb/controller/xhci.c @@ -3806,12 +3806,10 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) xhci_configure_mask(udev, (1U << epno) | 1U, 0); - err = xhci_cmd_evaluate_ctx(sc, buf_inp.physaddr, index); - - if (err != 0) - DPRINTF("Could not configure endpoint %u\n", epno); - - err = xhci_cmd_configure_ep(sc, buf_inp.physaddr, 0, index); + if (epno > 1) + err = xhci_cmd_configure_ep(sc, buf_inp.physaddr, 0, index); + else + err = xhci_cmd_evaluate_ctx(sc, buf_inp.physaddr, index); if (err != 0) DPRINTF("Could not configure endpoint %u\n", epno); @@ -4191,6 +4189,10 @@ xhci_device_state_change(struct usb_device *udev) sc->sc_hw.devs[index].state = XHCI_ST_ADDRESSED; + /* set configure mask to slot only */ + xhci_configure_mask(udev, 1, 0); + + /* deconfigure all endpoints, except EP0 */ err = xhci_cmd_configure_ep(sc, 0, 1, index); if (err) { |
