usb: queue can have async packets
This can happen today in case the ->complete() callback queues up thenext packet. Also we'll support pipelining soon, which allows to havemultiple packets per queue in flight (aka ASYNC) state.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
usb: add pipelining option to usb endpoints
With this patch applied USB drivers can enable pipelining per endpoint.With pipelining enabled the usb core will continue submitting packetseven when there are still async transfers in flight instead of passing...
usb: add shortcut for control transfers
Add a more direct code path to submit control transfers. Instead offeeding three usb packets (setup, data, ack) to usb_handle_packet andhave the do_token_* functions in usb.c poke the control transferparameters out of it just submit a single packet carrying the actual...
xhci: fix control xfers
Use the new, direct control transfer submission method instead ofbypassing the usb core by calling usb_device_handle_control directly.The later fails for async control transfers.
This patch gets xhci + usb-host combo going.
usb-ehci: Remove dead nakcnt code
This patch removes 2 bits of dead nakcnt code:
1) usb_ehci_execute calls ehci_qh_do_overlay which does:nakcnt = reload;and then has a block of code which is conditional on:if (reload && !nakcnt) {which ofcourse is never true now as nakcnt == reload....
usb-ehci: Fix and simplify nakcnt handling
The nakcnt code in ehci_execute_complete() marked transactions as finishedwhen a packet completed with a result of USB_RET_NAK, but USB_RET_NAKmeans that the device cannot receive / send data at that time and that...
usb-ehci: Cleanup itd error handling
All error statuses except for NAK are handled in a switch case, move thehandling of NAK into the same switch case.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
usb: add USB_RET_IOERROR
We already have USB_RET_NAK, but that means that a device does not wantto send/receive right now. But with host / network redirection we canactually have a transaction fail due to some io error, rather then iethe device just not having any data atm....
uhci_fill_queue: zap debug printf
usb-ehci: Fix cerr tracking
cerr should only be decremented on errors which cause XactErr to be set, andwhen that happens the failing transaction should be retried until cerr reaches0 and only then should USBSTS_ERRINT be set (and inactive cleared andUSBSTS_INT set if requested)....
View revisions
Also available in: Atom