qemu/include/hw
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
..
acpi Add ACPI tables for TPM 2014-08-25 00:16:06 +02:00
arm arm: armv7m: Rename address_space_mem -> system_memory 2014-08-19 19:02:40 +01:00
audio isa: QOM'ify ISADevice 2013-06-07 14:55:33 +02:00
block block: Pass errp in blkconf_geometry 2014-08-26 13:20:44 +02:00
char hw/arm/digic: add UART support 2013-12-17 20:12:51 +00:00
cpu icc_bus: QOM'ify ICC 2013-12-24 18:02:18 +01:00
cris cris: Remove the CRIS PIC glue 2014-02-03 14:04:00 +00:00
i2c smbus: return -1 if nothing found at the given address 2014-05-07 19:14:46 +03:00
i386 xhci PCIe endpoint migration compatibility fix 2014-09-10 07:20:53 +02:00
input input: switch hid mouse and tablet to the new input layer api. 2014-05-26 08:42:43 +02:00
intc arm: vgic device control api support 2014-02-26 17:20:00 +00:00
ipack ipack: Move IndustryPack out of hw/char/ 2014-02-14 21:11:53 +01:00
isa i2c: Rename i2c_bus to I2CBus 2014-02-14 16:22:31 +01:00
kvm hw: move headers to include/ 2013-04-08 18:13:10 +02:00
lm32 lm32_juart: Relocate and tidy header 2013-07-29 21:06:27 +02:00
m68k hw: move headers to include/ 2013-04-08 18:13:10 +02:00
mem qmp: add query-memory-devices command 2014-06-19 18:44:22 +03:00
mips hw/mips: Add API to convert KVM guest KSEG0 <-> GPA 2014-06-18 16:58:10 +02:00
misc vfio: Add vfio_container_ioctl() 2014-06-27 13:48:23 +02:00
net allwinner-emac: set autonegotiation complete bit on link up 2014-04-17 21:34:06 +01:00
nvram sun4m: Set HostID in NVRAM 2014-02-27 10:01:40 +00:00
pci pcie: Rename the pcie_cap_ari_* functions to pcie_cap_arifwd_* 2014-08-25 00:16:06 +02:00
pci-host intel-iommu: add Intel IOMMU emulation to q35 and add a machine option "iommu" as a switch 2014-08-28 23:10:22 +02:00
ppc spapr_pci: Use XICS interrupt allocator and do not cache interrupts in PHB 2014-06-27 13:48:27 +02:00
s390x sclp-s390: Add device to manage s390 memory hotplug 2014-09-01 09:25:32 +02:00
scsi scsi-bus: Convert DeviceClass init to realize 2014-08-26 13:20:44 +02:00
sh4 sh7750: Change cpu field type to SuperHCPU 2013-04-13 13:51:45 +02:00
sparc firmware_abi: move to include/hw/nvram/ 2013-06-02 18:13:54 +03:00
timer allwinner-a10-pit: implement prescaler and source selection 2014-04-17 21:34:06 +01:00
tricore target-tricore: Add board for systemmode 2014-09-01 14:49:20 +01:00
unicore32 hw: move headers to include/ 2013-04-08 18:13:10 +02:00
usb usb: move ehci register defines to header file 2014-06-02 16:28:59 +02:00
virtio virtio-serial: create a linked list of all active devices 2014-08-18 22:42:37 +05:30
xen xen_backend: introduce xenstore_read_uint64 and xenstore_read_fe_uint64 2014-07-07 10:37:40 +00:00
boards.h intel-iommu: add Intel IOMMU emulation to q35 and add a machine option "iommu" as a switch 2014-08-28 23:10:22 +02:00
bt.h Preparation for usb-bt-dongle conditional build 2013-09-10 11:14:41 +02:00
devices.h arm: fix location of some include files 2013-04-15 15:16:01 +02:00
elf_ops.h elf-loader: add more return codes 2014-03-05 03:06:46 +01:00
empty_slot.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
fw-path-provider.h fw-path-provider: Change GPL version to 2+ 2014-04-07 15:36:07 +02:00
hotplug.h define hotplug interface 2014-02-10 10:23:35 +02:00
hw.h linux-user: Fix compilation failure 2013-06-27 15:38:35 -05:00
ide.h Call pci_piix3_xen_ide_unplug from unplug_disks 2014-02-20 17:28:08 +00:00
irq.h irq: Slim conversion of qemu_irq to QOM 2014-07-01 04:12:48 +02:00
loader.h loader: Add load_image_gzipped function. 2014-08-19 19:02:40 +01:00
nmi.h cpus: Define callback for QEMU "nmi" command 2014-08-25 13:25:16 +02:00
pcmcia.h pcmcia: QOM'ify PCMCIACardState and MicroDriveState 2013-11-05 18:06:52 +01:00
ptimer.h vmstate: Make VMSTATE_STRUCT_POINTER take type, not ptr-to-type 2014-02-04 15:51:45 +01:00
qdev-core.h qdev: correctly send DEVICE_DELETED for recursively-deleted devices 2014-07-01 10:20:42 +02:00
qdev-dma.h qdev: Remove hex8/32/64 property types 2014-02-14 21:12:04 +01:00
qdev-properties.h qdev: drop iothread property type 2014-07-01 09:15:02 +02:00
qdev.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
sd.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
ssi.h ssi: Name the CS GPIO 2014-05-28 17:36:21 +02:00
stream.h Trivial grammar and spelling fixes 2013-05-01 20:55:21 +04:00
sysbus.h sysbus: remove unused function sysbus_del_io 2014-08-17 23:25:24 +02:00
usb.h usb: add usb_bus_release function 2014-08-29 12:51:44 +02:00