vfio: Enable NVIDIA 88000 region quirk regardless of VGA
authorAlex Williamson <alex.williamson@redhat.com>
Mon, 25 Aug 2014 18:10:15 +0000 (12:10 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 25 Aug 2014 18:10:15 +0000 (12:10 -0600)
If we make use of OVMF for the BIOS then we can use GPUs without VGA
space access, but we still need this quirk.  Disassociate it from the
x-vga option and enable it on all NVIDIA VGA display class devices.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
hw/misc/vfio.c

index 0617b70ea6fd008c14ea1dd1be2912940ac64807..40dcaa6558b5b2e06539f99bcdae42af6e626237 100644 (file)
@@ -2194,9 +2194,13 @@ static void vfio_probe_nvidia_bar0_88000_quirk(VFIODevice *vdev, int nr)
 {
     PCIDevice *pdev = &vdev->pdev;
     VFIOQuirk *quirk;
+    uint16_t vendor, class;
 
-    if (!vdev->has_vga || nr != 0 ||
-        pci_get_word(pdev->config + PCI_VENDOR_ID) != PCI_VENDOR_ID_NVIDIA) {
+    vendor = pci_get_word(pdev->config + PCI_VENDOR_ID);
+    class = pci_get_word(pdev->config + PCI_CLASS_DEVICE);
+
+    if (nr != 0 || vendor != PCI_VENDOR_ID_NVIDIA ||
+        class != PCI_CLASS_DISPLAY_VGA) {
         return;
     }