usb: Move clearing of queue on halt to the core
hcds which queue up more then one packet at once (uhci, ehci and xhci),must clear the queue after an error which has caused the queue to halt.
Currently this is handled as a special case inside the hcd code, this...
ehci: Get rid of packet tbytes field
This field is used in some places to track the tbytes field of the token, butin other places the field is used directly, use it directly everywhere forconsistency.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>...
ehci: Set int flag on a short input packet
According to 4.15.1.2 an interrupt must be raised when a short packetis received. If we don't do this it may take a significant time forthe guest to notice a short trasnfer has completed, since only the last td...
ehci: Improve latency of interrupt delivery and async schedule scanning
While doing various performance tests of reading from USB mass storage devicesI noticed the following::1) When an async handled packet completes, we don't immediately report an interrupt to the guest, instead we wait for the frame-timer to run and...
ehci: Speed up the timer of raising int from the async schedule
Often the guest will queue up new packets in response to a packet, in theasync schedule with its IOC flag set, completing. By speeding up theframe-timer, we notice these new packets earlier. This increases the...
ehci: Detect going in circles when filling the queue
For ctrl endpoints Windows (atleast Win7) creates circular td lists, so farthese were not a problem because we would stop filling the queue if altnextwas set. Since further patches in this patchset remove the altnext check this...
ehci: Retry to fill the queue while waiting for td completion
If the guest is using multiple transfers to try and keep the usb bus busy /used at maximum efficiency, currently we would see / do the following:
1) submit transfer 1 to the device2) submit transfer 2 to the device...
xhci: Add a xhci_ep_nuke_one_xfer helper function
Signed-off-by: Hans de Goede <hdegoede@redhat.com>Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
usb: Rename __usb_packet_complete to usb_packet_complete_one
And make it available for use outside of core.c
usb: Add USB_RET_ADD_TO_QUEUE packet result code
This can be used by usb-device code which wishes to process an entire endpointqueue at once, to do this the usb-device code returns USB_RET_ADD_TO_QUEUEfrom its handle_data class method and defines a flush_ep_queue class method...
View all revisions | View revisions
Also available in: Atom