OSDN Git Service

drm/qxl: don't take vga ports on rev5+
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 7 Aug 2020 10:55:01 +0000 (12:55 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 17 Aug 2020 07:36:36 +0000 (09:36 +0200)
qemu 5.0 introduces a new qxl hardware revision 5.  Unlike revision 4
(and below) the device doesn't switch back into vga compatibility mode
when someone touches the vga ports.  So we don't have to reserve the
vga ports any more to avoid that happening.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20200807105501.24599-1-kraxel@redhat.com
drivers/gpu/drm/qxl/qxl_drv.c

index 13872b8..6e7f16f 100644 (file)
@@ -96,7 +96,7 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (ret)
                goto disable_pci;
 
-       if (is_vga(pdev)) {
+       if (is_vga(pdev) && pdev->revision < 5) {
                ret = vga_get_interruptible(pdev, VGA_RSRC_LEGACY_IO);
                if (ret) {
                        DRM_ERROR("can't get legacy vga ioports\n");
@@ -127,7 +127,7 @@ modeset_cleanup:
 unload:
        qxl_device_fini(qdev);
 put_vga:
-       if (is_vga(pdev))
+       if (is_vga(pdev) && pdev->revision < 5)
                vga_put(pdev, VGA_RSRC_LEGACY_IO);
 disable_pci:
        pci_disable_device(pdev);
@@ -155,7 +155,7 @@ qxl_pci_remove(struct pci_dev *pdev)
 
        drm_dev_unregister(dev);
        drm_atomic_helper_shutdown(dev);
-       if (is_vga(pdev))
+       if (is_vga(pdev) && pdev->revision < 5)
                vga_put(pdev, VGA_RSRC_LEGACY_IO);
 }