Hi, This patch series is the start for an overhaul of the usb descriptor handling for emulated usb devices. Instead of storing the device desriptors in blobs (aka char arrays) they are stored in structs, which makes it alot easier to work with them. This in turn allows to move common device management to common code and also makes it alot easier to add high speed support to the emulated devices.
The patch series also features some usb subsystem cleanups and fixes, remote wakeup support for hid devices and some preparing bits for high-speed support. The patches are also available in the git repository at: git://anongit.freedesktop.org/spice/qemu usb.2 cheers, Gerd PS: There is also a usb.2.wip branch in the git repo with some more wip/experimental/debug patches for those who what to play with ehci. Gerd Hoffmann (24): 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: hid: remote wakeup support. 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 Makefile.objs | 2 +- hw/usb-bt.c | 525 ++++++++++++++++++++++-------------------------------- hw/usb-bus.c | 6 +- hw/usb-desc.c | 406 ++++++++++++++++++++++++++++++++++++++++++ hw/usb-desc.h | 92 ++++++++++ hw/usb-hid.c | 486 ++++++++++++++++++++++----------------------------- hw/usb-hub.c | 227 +++++++++++------------- hw/usb-msd.c | 263 ++++++++++++--------------- hw/usb-musb.c | 43 ++--- hw/usb-net.c | 528 +++++++++++++++++++++++-------------------------------- hw/usb-ohci.c | 87 +++++----- hw/usb-serial.c | 236 +++++++++---------------- hw/usb-uhci.c | 97 ++++++----- hw/usb-wacom.c | 214 ++++++++--------------- hw/usb.c | 34 ++++- hw/usb.h | 46 +++++- trace-events | 11 ++ 17 files changed, 1736 insertions(+), 1567 deletions(-) create mode 100644 hw/usb-desc.c create mode 100644 hw/usb-desc.h