usb_ep_dequeue — dequeues (cancels, unlinks) an I/O request from an endpoint
int usb_ep_dequeue ( | struct usb_ep * ep, |
struct usb_request * req) ; |
if the request is still active on the endpoint, it is dequeued and its completion routine is called (with status -ECONNRESET); else a negative error code is returned.
note that some hardware can't clear out write fifos (to unlink the request at the head of the queue) except as part of disconnecting from usb. such restrictions prevent drivers from supporting configuration changes, even to configuration zero (a “chapter 9” requirement).