]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: auto-add generic xhci rather than NEC xhci to Q35 domains
authorLaine Stump <laine@laine.org>
Wed, 17 Jan 2018 21:47:06 +0000 (16:47 -0500)
committerLaine Stump <laine@laine.org>
Mon, 22 Jan 2018 15:13:16 +0000 (10:13 -0500)
We recently added a generic XHCI USB3 controller to QEMU, and libvirt
supports adding that controller rather than the NEC XHCI USB3
controller, but when auto-adding a USB controller to Q35 domains we
were still adding the vendor-specific NEC controller. This patch
changes to add the generic controller instead, if it's available in
the QEMU binary that will be used.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_domain.c

index 1676c03fc373428f1b195c66dcd12a11e29b46ec..6b4bd3cca0a2a15019340a725f32ef85da11117a 100644 (file)
@@ -2660,12 +2660,13 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def,
             addPCIeRoot = true;
             addImplicitSATA = true;
 
-            /* Prefer adding USB3 controller if supported
-             * (nec-usb-xhci). Failing that, add a USB2 controller set
-             * if the ich9-usb-ehci1 device is supported. Otherwise
-             * don't add anything.
+            /* Prefer adding a USB3 controller if supported, fall back
+             * to USB2 if there is no USB3 available, and if that's
+             * unavailable don't add anything.
              */
-            if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NEC_USB_XHCI))
+            if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_QEMU_XHCI))
+                usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_QEMU_XHCI;
+            else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NEC_USB_XHCI))
                 usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_NEC_XHCI;
             else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_USB_EHCI1))
                 usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1;