• 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
..
amd Loading commit data...
arc Loading commit data...
arm Loading commit data...
armada Loading commit data...
ast Loading commit data...
atmel-hlcdc Loading commit data...
bochs Loading commit data...
bridge Loading commit data...
cirrus Loading commit data...
etnaviv Loading commit data...
exynos Loading commit data...
fsl-dcu Loading commit data...
gma500 Loading commit data...
hisilicon Loading commit data...
i2c Loading commit data...
i810 Loading commit data...
i915 Loading commit data...
imx Loading commit data...
mediatek Loading commit data...
mga Loading commit data...
mgag200 Loading commit data...
msm Loading commit data...
nouveau Loading commit data...
omapdrm Loading commit data...
panel Loading commit data...
qxl Loading commit data...
r128 Loading commit data...
radeon Loading commit data...
rcar-du Loading commit data...
rockchip Loading commit data...
savage Loading commit data...
shmobile Loading commit data...
sis Loading commit data...
sti Loading commit data...
sun4i Loading commit data...
tdfx Loading commit data...
tegra Loading commit data...
tilcdc Loading commit data...
ttm Loading commit data...
udl Loading commit data...
vc4 Loading commit data...
vgem Loading commit data...
via Loading commit data...
virtio Loading commit data...
vmwgfx Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
ati_pcigart.c Loading commit data...
drm_agpsupport.c Loading commit data...
drm_atomic.c Loading commit data...
drm_atomic_helper.c Loading commit data...
drm_auth.c Loading commit data...
drm_blend.c Loading commit data...
drm_bridge.c Loading commit data...
drm_bufs.c Loading commit data...
drm_cache.c Loading commit data...
drm_context.c Loading commit data...
drm_crtc.c Loading commit data...
drm_crtc_helper.c Loading commit data...
drm_crtc_internal.h Loading commit data...
drm_debugfs.c Loading commit data...
drm_dma.c Loading commit data...
drm_dp_aux_dev.c Loading commit data...
drm_dp_dual_mode_helper.c Loading commit data...
drm_dp_helper.c Loading commit data...
drm_dp_mst_topology.c Loading commit data...
drm_drv.c Loading commit data...
drm_edid.c Loading commit data...
drm_edid_load.c Loading commit data...
drm_encoder_slave.c Loading commit data...
drm_fb_cma_helper.c Loading commit data...
drm_fb_helper.c Loading commit data...
drm_flip_work.c Loading commit data...
drm_fops.c Loading commit data...
drm_fourcc.c Loading commit data...
drm_gem.c Loading commit data...
drm_gem_cma_helper.c Loading commit data...
drm_global.c Loading commit data...
drm_hashtab.c Loading commit data...
drm_info.c Loading commit data...
drm_internal.h Loading commit data...
drm_ioc32.c Loading commit data...
drm_ioctl.c Loading commit data...
drm_irq.c Loading commit data...
drm_kms_helper_common.c Loading commit data...
drm_legacy.h Loading commit data...
drm_lock.c Loading commit data...
drm_memory.c Loading commit data...
drm_mipi_dsi.c Loading commit data...
drm_mm.c Loading commit data...
drm_modes.c Loading commit data...
drm_modeset_lock.c Loading commit data...
drm_of.c Loading commit data...
drm_panel.c Loading commit data...
drm_pci.c Loading commit data...
drm_plane_helper.c Loading commit data...
drm_platform.c Loading commit data...
drm_prime.c Loading commit data...
drm_probe_helper.c Loading commit data...
drm_rect.c Loading commit data...
drm_scatter.c Loading commit data...
drm_simple_kms_helper.c Loading commit data...
drm_sysfs.c Loading commit data...
drm_trace.h Loading commit data...
drm_trace_points.c Loading commit data...
drm_vm.c Loading commit data...
drm_vma_manager.c Loading commit data...