History | View | Annotate | Download (64.4 kB)
usb: Call wakeup when data becomes available for all devices with int eps
This is necessary for proper interaction with the xhci controller, and itwill allow other hcds to lower there frame timer while waiting for interruptdata.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>...
usb-redir: Split usb_handle_interrupt_data into separate in/out functions
No functional changes.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
usb-redir: Don't handle interrupt output packets async
Instead report them as successfully completed directly on submission, thishas 2 advantages:
1) This matches the timing of interrupt output packets on real hardware,with the previous async handling, if an ep has an interval of say 500 ms,...
usb-redir: Only add actually in flight packets to the in flight queue
Packets which are queued up, but not yet handed over to the device, arenot in flight.
usb-redir: Set default debug level to warning
The previous default of 0 means that even errors and warnings would notget printed, which is really not a good default.
usb: split packet result into actual_length + status
Since with the ehci and xhci controllers a single packet can be largerthen maxpacketsize, it is possible for the result of a single packetto be both having transferred some data as well as the transfer to have...
usb-redir: Allow packets to have both data and an error-status
usb-redir: Add an usbredir_setup_usb_eps() helper function
usb-redir: Use reject rather the disconnect on bad ep info
So that the client gets a notification about us disconnecting the device.
usb-redir: Allow to attach USB 2.0 devices to 1.1 host controller
This follows the logic of host-linux: If a 2.0 device has no ISOendpoint and no interrupt endpoint with a packet size > 64, we canattach it also to an 1.1 host controller. In case the redir server does...
usb-redir: Allow redirecting super speed devices to high speed controllers
usb-redir: Add support for input pipelining
usb-redir: Add support for 32 bits bulk packet length
usb: Move short-not-ok handling to the core
After a short-not-ok packet ending short, we should not advance the queue.Move enforcing this to the core, rather then handling it in the hcd code.
This may result in the queue now actually containing multiple input packets...
usb-redir: Change usbredir_open_chardev into usbredir_create_parser
As we need to create the parser at more places.
usb-redir: Don't make migration fail in none seamless case
Instead simple disconnect the device like host redirection does onmigration.
usb-redir: Add support for migration
usb-redir: Add chardev open / close debug logging
usb-redir: Revert usb-redir part of commit 93bfef4c
Commit 93bfef4c6e4b23caea9d51e1099d06433d8835a4 makes qemu-deviceswhich report the qemu version string to the guest in some way use aqemu_get_version function which reports a machine-specific version string....
usb-redir: Change cancelled packet code into a generic packet-id queue
usb-redir: Add an already_in_flight packet-id queue
After a live migration, the usb-hcd will re-queue all packets bywalking over the schedule in the guest memory again, but requests whichwere encountered on the migration source before will already be in flight,...
usb-redir: Store max_packet_size in endp_data
So that we've a place to migrate it to / from to allow restoring it aftermigration.
usb-redir: Don't delay handling of open events to a bottom half
There is no need for this, and doing so means that a backend trying towrite immediately after an open event will see qemu_chr_be_can_writereturning 0, which not all backends handle well as there is no wakeup...
usb-redir: Get rid of async-struct get member
This is a preparation patch for completely getting rid of the async-packetstruct in usb-redir, instead relying on the (new) per ep queues in theqemu usb core.
usb-redir: Get rid of local shadow copy of packet headers
The shadow copy only serves as an extra check (besides the packet-id) toensure the packet we get back is a reply to the packet we think it is.
This check has never triggered in all the time usb-redir is in use now,...
usb-redir: Get rid of unused async-struct dev member
usb-redir: Move to core packet id and queue handling
usb-redir: Return babble when getting more bulk data then requested
Babble is the appropriate error in this case (rather then signalling a stall).
usb-redir: Convert to new libusbredirparser 0.5 API
This gives us support for 64 bit ids which is needed for using XHCI withthe new hcd generated ids.
usb-redir: Set ep max_packet_size if available
This is needed for usb-redir to work properly with the xhci emulation.
usb-redir: Add a usbredir_reject_device helper function
usb-redir: Ensure our peer has the necessary caps when redirecting to XHCI
In order for redirection to work properly when redirecting to an emulatedXHCI controller, the usb-redir-host must support bothusb_redir_cap_ep_info_max_packet_size and usb_redir_cap_64bits_ids,...
usb-redir: Enable pipelining for bulk endpoints
usb-redir: Never return USB_RET_NAK for async handled packets
USB_RET_NAK is not a valid response for async handled packets (and willtrigger an assert as such).
Also drop the warning when receiving a status of cancelled for packets notcancelled by qemu itself, this can happen when a device gets unredirected...
usb-redir: Correctly handle the usb_redir_babble usbredir status
Allow machines to configure the QEMU_VERSION that's exposed via hardware
QEMU exposes its version to the guest's hardware and in some cases that is wrong(e.g. Windows prints messages about driver updates when you switchthe QEMU version).There is a new field now on the struct QEmuMachine, hw_version, which may...
usb-redir: An interface count of 0 is a valid value
An interface-count of 0 happens when a device is in unconfigured state whenit gets redirected. So we should not use 0 to detect not having receivedinterface info from our peer.
usb-redir: Reset device address and speed on disconnect
Without this disconnected devices look like the last redirected devicein the monitor in "info usb".
usb-redir: Not finding an async urb id is not an error
We clear our pending async urb list on device disconnect and we may stillreceive "packet complete" packets from our peer after this, which will thenrefer to packet ids no longer in our list.
usb-redir: Notify our peer when we reject a device due to a speed mismatch
Also cleanup (reset) our device state when we reject a device due to aspeed mismatch.
Add bootindex support to usb-host and usb-redir
When passing through a usb pendrive seabios will present it in the F12boot menu and will happily boot from it.
This patch adds bootorder support so you can even make it the defaultboot device.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
usb: the big rename
Reorganize usb source files. Create a new hw/usb/ directory and moveall usb source code to that place. Also make filenames a bit moredescriptive. Host adapters are prefixed with "hch-" now, usb deviceemulations are prefixed with "dev-". Fixup paths Makefile and include...