On Do, 2015-09-03 at 12:45 +0200, Juergen Gross wrote:
When Xen is using the qemu usb framework for pure passthrough of I/Os
to host devices the handling of isoc jobs is rather complicated if
multiple isoc frames are transferred with one call.
Instead of calling the framework with each frame individually, using
timers to avoid polling in a loop and sampling all responses to
construct a sum response for the user, just add a capability to
use the libusb isoc framework instead. This capability is selected
via a device specific property.
When the property is selected the host usb driver will use xen specific
callbacks to signal the end of isoc I/Os. For now these callbacks will
just be nops, they'll be filled with sensible actions when the xen
pv-usb backend is being added.
So you basically add support for async isoc requests. Fine.
There is nothing xen specific in this though, except that xen is (so
far) the only user. It isn't going to work for uhci and ehci, put
possibly xhci can join the party.
So, the signaling needs to be different. The host adapter needs to
signal somehow that it can handle async iso packets. One way would be
to flag this per usb bus, another one per usb packet. Also all xen
naming and the xen inlude should go away. BTW: does this build without
xen-devel installed?