qemu/hw/usb
Gerd Hoffmann 96dd9aac37 usb-host: rewrite usb_linux_update_endp_table
This patch carries a complete rewrite of the usb descriptor parser.
Changes / improvements:

 * We are using the USBDescriptor struct instead of hard-coded offsets
   now to access descriptor data.
 * (debug) printfs are all gone, tracepoints have been added instead.
 * We don't try (and fail) to skip over unneeded descriptors.  We parse
   them all one by one.  We keep track of which configuration, interface
   and altsetting we are looking at and use this information to figure
   which desciptors are in use and which we can ignore.
 * On parse errors we clear all endpoint information, which will
   disallow any communication with the device, except control endpoint
   messages.  This makes sure we don't end up with a silly device state
   where half of the endpoints got enabled and the other half was left
   disabled.
 * Some sanity checks have been added.

The new parser is more robust and also leaves complete device
information in the trace log if you enable the ush_host_parse_*
tracepoints.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-04-17 10:23:28 +02:00
..
bus.c usb/vmstate: add parent dev path 2012-04-17 10:23:21 +02:00
core.c usb_packet_set_state: handle p->ep == NULL 2012-04-17 10:23:27 +02:00
desc.c usb: use USBDescriptor for endpoint descriptors. 2012-04-17 10:23:28 +02:00
desc.h usb: use USBDescriptor for endpoint descriptors. 2012-04-17 10:23:28 +02:00
dev-audio.c usb: the big rename 2012-03-13 10:15:32 +01:00
dev-bluetooth.c usb: the big rename 2012-03-13 10:15:32 +01:00
dev-hid.c usb: the big rename 2012-03-13 10:15:32 +01:00
dev-hub.c usb-hub: add tracepoints 2012-04-17 10:23:27 +02:00
dev-network.c usb: the big rename 2012-03-13 10:15:32 +01:00
dev-serial.c usb: the big rename 2012-03-13 10:15:32 +01:00
dev-smartcard-reader.c usb: the big rename 2012-03-13 10:15:32 +01:00
dev-storage.c qdev: qdev_unplug(): use error_set() 2012-04-09 14:35:25 -03:00
dev-wacom.c usb: the big rename 2012-03-13 10:15:32 +01:00
hcd-ehci.c usb-ehci: frindex always is a 14 bits counter 2012-04-17 10:23:28 +02:00
hcd-musb.c usb: the big rename 2012-03-13 10:15:32 +01:00
hcd-ohci.c usb-ohci: DMA writeback bug fixes 2012-03-13 10:15:32 +01:00
hcd-uhci.c usb-uhci: queuing fix 2012-04-17 10:23:27 +02:00
hcd-xhci.c usb: the big rename 2012-03-13 10:15:32 +01:00
host-bsd.c usb: the big rename 2012-03-13 10:15:32 +01:00
host-linux.c usb-host: rewrite usb_linux_update_endp_table 2012-04-17 10:23:28 +02:00
host-stub.c usb: the big rename 2012-03-13 10:15:32 +01:00
libhw.c usb: the big rename 2012-03-13 10:15:32 +01:00
redirect.c Add bootindex support to usb-host and usb-redir 2012-04-17 10:23:27 +02:00