Hi, Here is a update of the usb descriptor patches and a bunch of improvements on top of that. This patch series features:
* Update USB section in MAINTAINERS * A major overhaul for the usb descriptor handling for emulated devices. This is in preparation for USB 2.0 support entering qemu which will need a bit more sophisticated descriptor handling. This is also for moving descriptor handling to common code instead of having each driver duplicate it. * Improved usb port management. * Remote wakeup support, which allows guests to suspend the usb bus when all devices are idle, so qemu will not wakeup at usb frame rate (1000 Hz). * A bunch of improvements and fixes for the usb-storage emulation. It features full USB 2.0 support now, although due to the lack of a EHCI controller the only thing you'll notice is that the linux kernel logs a message which suggests to connect the device to a high-speed port. The patches are available in the git repository at: git://anongit.freedesktop.org/spice/qemu usb.3 I think it would be very good to have in 0.14 (especially the remote wakeup support and the storage fixes). Most patches have been on the list already and are unmodified compared to the usb.2 branch posted a week ago. Note that I'll go disappear for x-mas and newyear holidays in a few hours though, so I wouldn't be available to help fixing up any issues which might pop up until january. Assuming we stick to the original release schedule this isn't ideal of course. Given that the master branch hasn't seen any commits this week I have my doubts that we see rc0 today though. FYI: I have some more experimental stuff which isn't ready for merge yet in the queue: * EHCI controller. * Initial migration support for usb (not complete yet, not all devices are covered, doesn't handle usb transactions which are in flight at migration time, should already work fine for idle usb devices though). * First bits of packet workflow cleanups. If you wanna play with this: the git tree with these experimental and in-progress bits is here: git://anongit.freedesktop.org/spice/qemu usb.3.wip enjoy & happy x-mas, Gerd Gerd Hoffmann (30): usb: update MAINTAINERS usb: data structs and helpers for usb descriptors. usb hid: use new descriptor infrastructure. usb serial: use new descriptor infrastructure. usb storage: use new descriptor infrastructure. usb wacom: use new descriptor infrastructure. usb bluetooth: use new descriptor infrastructure. usb hub: use new descriptor infrastructure. usb descriptors: add settable strings. usb storage: serial number support usb network: use new descriptor infrastructure. usb: move USB_REQ_SET_ADDRESS handling to common code usb: move USB_REQ_{GET,SET}_CONFIGURATION handling to common code usb: move remote wakeup handling to common code usb: create USBPortOps, move attach there. usb: rework attach/detach workflow usb: add usb_wakeup() + wakeup callback to port ops usb: uhci: remote wakeup support. usb: hub: remote wakeup support. usb: hid: remote wakeup support. usb: hid: change serial number to "42". usb: add speed mask to ports usb: add attach callback usb: add usb_desc_attach usb: add device qualifier support usb storage: high speed support usb storage: fix status reporting usb storage: handle long responses usb: keep track of physical port address. usb: add port property. MAINTAINERS | 4 +- Makefile.objs | 2 +- hw/usb-bt.c | 525 ++++++++++++++++++++++-------------------------------- hw/usb-bus.c | 57 +++++- hw/usb-desc.c | 406 ++++++++++++++++++++++++++++++++++++++++++ hw/usb-desc.h | 92 ++++++++++ hw/usb-hid.c | 486 ++++++++++++++++++++++----------------------------- hw/usb-hub.c | 250 +++++++++++++------------- hw/usb-msd.c | 267 +++++++++++++--------------- hw/usb-musb.c | 44 ++--- hw/usb-net.c | 528 +++++++++++++++++++++++-------------------------------- hw/usb-ohci.c | 88 +++++----- hw/usb-serial.c | 236 +++++++++---------------- hw/usb-uhci.c | 98 ++++++----- hw/usb-wacom.c | 214 ++++++++--------------- hw/usb.c | 34 ++++- hw/usb.h | 49 +++++- trace-events | 11 ++ 18 files changed, 1813 insertions(+), 1578 deletions(-) create mode 100644 hw/usb-desc.c create mode 100644 hw/usb-desc.h