summaryrefslogtreecommitdiff
path: root/sys/dev/microcode/ral/microcode.h
diff options
context:
space:
mode:
authorriastradh <riastradh@NetBSD.org>2022-01-29 21:36:12 +0000
committerriastradh <riastradh@NetBSD.org>2022-01-29 21:36:12 +0000
commit23b36bdb27d23b4d7b96ba7cd68620aefbe3002c (patch)
tree4955baf94c371d13ef2bd116fbed20ff8d20c0b8 /sys/dev/microcode/ral/microcode.h
parentd44205014dec3d5da92c2032ef232cac3f17e1d6 (diff)
xhci(4): Fix handling of endpoint reset/stop.
Use the same asynchronous task resetting a stalled/halted endpoint and stopping a running endpoint -- either way we need to put the endpoint back into a known state and, if there are transfers waiting to run, start them up again. - xhci_abortx must not drop the pipe (bus) lock -- usbdi(9) requires this. So arrange to stop the endpoint and empty the queue asynchronously. - If the xhci softint claims an xfer for completion with usbd_xfer_trycomplete, it must call usb_transfer_complete without ever releasing the pipe (bus) lock -- it can't claim the xfer and then defer the usb_transfer_complete to a task. So arrange to reset the endpoint asynchronously, hold up new transfers until the endpoint has been reset, and then do usb_transfer_complete immediately.
Diffstat (limited to 'sys/dev/microcode/ral/microcode.h')
0 files changed, 0 insertions, 0 deletions