• Laszlo Ersek's avatar
    drm: virtio: reinstate drm_virtio_set_busid() · 3245ff58
    Laszlo Ersek authored
    commit c2cbc38b9715bd8318062e600668fc30e5a3fbfa upstream.
    
    Before commit a3257256 ("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 a3257256 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 a3257256 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 a3257256^ -- drivers/gpu/drm/virtio
    
    Cc: Daniel Vetter <daniel.vetter@intel.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>
    Reported-by: 's avatarJoachim Frieben <jfrieben@hotmail.com>
    Fixes: a3257256
    Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1366842Signed-off-by: 's avatarLaszlo Ersek <lersek@redhat.com>
    Reviewed-by: 's avatarEmil Velikov <emil.l.velikov@gmail.com>
    Signed-off-by: 's avatarDave Airlie <airlied@redhat.com>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    3245ff58
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.cocciconfig Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...
REPORTING-BUGS Loading commit data...