summaryrefslogtreecommitdiffstats
path: root/src/interface/linux/linux_nap.c
diff options
context:
space:
mode:
authorMichael Brown2015-03-23 16:05:28 +0100
committerMichael Brown2015-03-23 16:21:35 +0100
commitde6f4e3ede895b45325c5d062d25a94d1dd37e2e (patch)
tree220b52023811b1c21c8c59855027e2f43a200a6f /src/interface/linux/linux_nap.c
parent[xhci] Ring doorbell as part of endpoint reset (diff)
downloadipxe-de6f4e3ede895b45325c5d062d25a94d1dd37e2e.tar.gz
ipxe-de6f4e3ede895b45325c5d062d25a94d1dd37e2e.tar.xz
ipxe-de6f4e3ede895b45325c5d062d25a94d1dd37e2e.zip
[usb] Reset endpoints without waiting for a new transfer to be enqueued
The current endpoint reset logic defers the reset until the caller attempts to enqueue a new transfer to that endpoint. This is insufficient when dealing with endpoints behind a transaction translator, since the transaction translator is a resource shared between multiple endpoints. We cannot reset the endpoint as part of the completion handling, since that would introduce recursive calls to usb_poll(). Instead, we add the endpoint to a list of halted endpoints, and perform the reset on the next call to usb_step(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/linux/linux_nap.c')
0 files changed, 0 insertions, 0 deletions