Parcourir la source

drm/virtio: fix busid regression

Created by commit a325725633c26aa66ab940f762a6b0778edf76c0.
busid changes and userspace is upset.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann il y a 9 ans
Parent
commit
9785b4321b
1 fichiers modifiés avec 11 ajouts et 2 suppressions
  1. 11 2
      drivers/gpu/drm/virtio/virtgpu_drm_bus.c

+ 11 - 2
drivers/gpu/drm/virtio/virtgpu_drm_bus.c

@@ -71,13 +71,22 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev)
 
 	if (strcmp(vdev->dev.parent->bus->name, "pci") == 0) {
 		struct pci_dev *pdev = to_pci_dev(vdev->dev.parent);
+		const char *pname = dev_name(&pdev->dev);
 		bool vga = (pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA;
+		char unique[20];
 
-		DRM_INFO("pci: %s detected\n",
-			 vga ? "virtio-vga" : "virtio-gpu-pci");
+		DRM_INFO("pci: %s detected at %s\n",
+			 vga ? "virtio-vga" : "virtio-gpu-pci",
+			 pname);
 		dev->pdev = pdev;
 		if (vga)
 			virtio_pci_kick_out_firmware_fb(pdev);
+
+		snprintf(unique, sizeof(unique), "pci:%s", pname);
+		ret = drm_dev_set_unique(dev, unique);
+		if (ret)
+			goto err_free;
+
 	}
 
 	ret = drm_dev_register(dev, 0);