diff options
Diffstat (limited to 'drm-virtio-reinstate-drm_virtio_set_busid.patch')
-rw-r--r-- | drm-virtio-reinstate-drm_virtio_set_busid.patch | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/drm-virtio-reinstate-drm_virtio_set_busid.patch b/drm-virtio-reinstate-drm_virtio_set_busid.patch deleted file mode 100644 index 52698e235..000000000 --- a/drm-virtio-reinstate-drm_virtio_set_busid.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 61d19a658598b2d3ea80a5a02a59d9ea0ff08ce6 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek <lersek@redhat.com> -Date: Mon, 3 Oct 2016 19:43:03 +0200 -Subject: [PATCH] drm: virtio: reinstate drm_virtio_set_busid() - -Before commit a325725633c2 ("drm: Lobotomize set_busid nonsense for !pci -drivers"), several DRM drivers for platform devices used to expose an -explicit "drm_driver.set_busid" callback, invariably backed by -drm_platform_set_busid(). - -Commit a325725633c2 removed drm_platform_set_busid(), along with the -referring .set_busid field initializations. This was justified because -interchangeable functionality had been implemented in drm_dev_alloc() / -drm_dev_init(), which DRM_IOCTL_SET_VERSION would rely on going forward. - -However, commit a325725633c2 also removed drm_virtio_set_busid(), for -which the same consolidation was not appropriate: this .set_busid callback -had been implemented with drm_pci_set_busid(), and not -drm_platform_set_busid(). The error regressed Xorg/xserver on QEMU's -"virtio-vga" card; the drmGetBusid() function from libdrm would no longer -return stable PCI identifiers like "pci:0000:00:02.0", but rather unstable -platform ones like "virtio0". - -Reinstate drm_virtio_set_busid() with judicious use of - - git checkout -p a325725633c2^ -- drivers/gpu/drm/virtio - -Cc: Daniel Vetter <daniel.vetter@ffwll.ch> -Cc: Daniel Vetter <daniel.vetter@intel.com> -Cc: David Airlie <airlied@redhat.com> -Cc: Emil Velikov <emil.l.velikov@gmail.com> -Cc: Gerd Hoffmann <kraxel@redhat.com> -Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk> -Cc: Hans de Goede <hdegoede@redhat.com> -Cc: Joachim Frieben <jfrieben@hotmail.com> -Cc: stable@vger.kernel.org -Reported-by: Joachim Frieben <jfrieben@hotmail.com> -Fixes: a325725633c26aa66ab940f762a6b0778edf76c0 -Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1366842 -Signed-off-by: Laszlo Ersek <lersek@redhat.com> -Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> ---- - drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 10 ++++++++++ - drivers/gpu/drm/virtio/virtgpu_drv.c | 1 + - drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + - 3 files changed, 12 insertions(+) - -diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c -index 7f0e93f87a55..88a39165edd5 100644 ---- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c -+++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c -@@ -27,6 +27,16 @@ - - #include "virtgpu_drv.h" - -+int drm_virtio_set_busid(struct drm_device *dev, struct drm_master *master) -+{ -+ struct pci_dev *pdev = dev->pdev; -+ -+ if (pdev) { -+ return drm_pci_set_busid(dev, master); -+ } -+ return 0; -+} -+ - static void virtio_pci_kick_out_firmware_fb(struct pci_dev *pci_dev) - { - struct apertures_struct *ap; -diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.c b/drivers/gpu/drm/virtio/virtgpu_drv.c -index c13f70cfc461..5820b7020ae5 100644 ---- a/drivers/gpu/drm/virtio/virtgpu_drv.c -+++ b/drivers/gpu/drm/virtio/virtgpu_drv.c -@@ -117,6 +117,7 @@ static const struct file_operations virtio_gpu_driver_fops = { - - static struct drm_driver driver = { - .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC, -+ .set_busid = drm_virtio_set_busid, - .load = virtio_gpu_driver_load, - .unload = virtio_gpu_driver_unload, - .open = virtio_gpu_driver_open, -diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h -index b18ef3111f0c..acf556a35cb2 100644 ---- a/drivers/gpu/drm/virtio/virtgpu_drv.h -+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h -@@ -49,6 +49,7 @@ - #define DRIVER_PATCHLEVEL 1 - - /* virtgpu_drm_bus.c */ -+int drm_virtio_set_busid(struct drm_device *dev, struct drm_master *master); - int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev); - - struct virtio_gpu_object { --- -2.7.4 - |