qemu-e2k/hw/usb
Dr. David Alan Gilbert e6043e92c2 xhci PCIe endpoint migration compatibility fix
Add back the PCIe config capabilities on XHCI cards in non-PCIe slots,
but only for machine types before 2.1.

This fixes a migration incompatibility in the XHCI PCI devices
caused by:
   058fdcf52c - xhci: add endpoint cap on express bus only

Note that in fixing it for compatibility with older QEMUs, it breaks
compatibility with existing QEMU 2.1's on older machine types.

The status before this patch was (if it used an XHCI adapter):
   machine type | source qemu
     any           pre-2.1     - FAIL
     any           2.1...      - PASS

With this patch:
   machine type | source qemu
     any           pre-2.1    - PASS
     pre-2.1       2.1...     - FAIL
     2.1           2.1...     - PASS

A test to trigger it is to add '-device nec-usb-xhci,id=xhci,addr=0x12'
to the command line.

Cc: qemu-stable@nongnu.org
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-09-10 07:20:53 +02:00
..
bus.c usb: add usb_bus_release function 2014-08-29 12:51:44 +02:00
ccid-card-emulated.c ccid-card-emulated: use EventNotifier 2014-07-01 15:49:51 +02:00
ccid-card-passthru.c
ccid.h
combined-packet.c usb: Fix iovec memleak on combined-packet free 2013-09-19 11:28:40 +02:00
core.c usb: add usb_pick_speed 2014-06-02 16:29:00 +02:00
desc-msos.c usb: add CompatibleID support to msos 2014-04-22 12:40:57 +02:00
desc.c usb: add usb_pick_speed 2014-06-02 16:29:00 +02:00
desc.h usb: add CompatibleID support to msos 2014-04-22 12:40:57 +02:00
dev-audio.c usb: don't use 'Yoda conditions' 2014-08-15 18:54:06 +04:00
dev-bluetooth.c usb: Fix usb-bt-dongle initialization. 2014-07-01 13:26:37 +02:00
dev-hid.c usb: add input routing support for tablet and keyboard 2014-05-26 08:42:43 +02:00
dev-hub.c savevm: Remove all the unneeded version_minimum_id_old (usb) 2014-05-14 15:24:51 +02:00
dev-mtp.c usb: don't use 'Yoda conditions' 2014-08-15 18:54:06 +04:00
dev-network.c - xhci improvements and fixes. 2014-02-20 15:25:05 +00:00
dev-serial.c usb: Remove magic constants from device bmAttributes 2014-02-18 15:39:12 +01:00
dev-smartcard-reader.c usb: Remove magic constants from device bmAttributes 2014-02-18 15:39:12 +01:00
dev-storage.c blockdev: Rename drive_init(), drive_uninit() to drive_new(), drive_del() 2014-06-16 17:23:19 +08:00
dev-uas.c usb: Remove magic constants from device bmAttributes 2014-02-18 15:39:12 +01:00
dev-wacom.c usb: Remove magic constants from device bmAttributes 2014-02-18 15:39:12 +01:00
hcd-ehci-pci.c usb-ehci: add ehci-pci device exit function 2014-08-29 12:52:14 +02:00
hcd-ehci-sysbus.c savevm: Remove all the unneeded version_minimum_id_old (usb) 2014-05-14 15:24:51 +02:00
hcd-ehci.c usb: add usb host adapters exit trace 2014-08-29 12:52:14 +02:00
hcd-ehci.h usb-ehci: add ehci unrealize funciton 2014-08-29 12:52:14 +02:00
hcd-musb.c usb: Pass size to usb_bus_new() 2013-08-30 20:14:39 +02:00
hcd-ohci.c usb-ohci: add exit function 2014-08-29 12:52:13 +02:00
hcd-uhci.c usb: add usb host adapters exit trace 2014-08-29 12:52:14 +02:00
hcd-xhci.c xhci PCIe endpoint migration compatibility fix 2014-09-10 07:20:53 +02:00
host-legacy.c qdev: Drop misleading qdev_free() function 2013-11-05 18:06:38 +01:00
host-libusb.c usb: initialize libusb_device to avoid crash 2014-07-01 13:26:37 +02:00
host-stub.c
host.h
libhw.c
Makefile.objs libcacard: remove libcacard-specific CFLAGS and LIBS from global vars 2014-05-09 22:59:40 +02:00
quirks-ftdi-ids.h
quirks-pl2303-ids.h
quirks.c
quirks.h
redirect.c serial: poll the serial console with G_IO_HUP 2014-06-30 15:04:34 +02:00