mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
hw/vfio/display: add ramfb support
So we have a boot display when using a vgpu as primary display. ramfb depends on a fw_cfg file. fw_cfg files can not be added and removed at runtime, therefore a ramfb-enabled vfio device can't be hotplugged. Add a nohotplug variant of the vfio-pci device (as child class). Add the ramfb property to the nohotplug variant only. So to enable the vgpu display with boot support use this: -device vfio-pci-nohotplug,display=on,ramfb=on,sysfsdev=... Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
7f623d0834
commit
b290659fc3
4 changed files with 40 additions and 0 deletions
|
@ -124,6 +124,9 @@ static void vfio_display_dmabuf_update(void *opaque)
|
|||
|
||||
primary = vfio_display_get_dmabuf(vdev, DRM_PLANE_TYPE_PRIMARY);
|
||||
if (primary == NULL) {
|
||||
if (dpy->ramfb) {
|
||||
ramfb_display_update(dpy->con, dpy->ramfb);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -181,6 +184,9 @@ static int vfio_display_dmabuf_init(VFIOPCIDevice *vdev, Error **errp)
|
|||
vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,
|
||||
&vfio_display_dmabuf_ops,
|
||||
vdev);
|
||||
if (vdev->enable_ramfb) {
|
||||
vdev->dpy->ramfb = ramfb_setup(errp);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -228,6 +234,9 @@ static void vfio_display_region_update(void *opaque)
|
|||
return;
|
||||
}
|
||||
if (!plane.drm_format || !plane.size) {
|
||||
if (dpy->ramfb) {
|
||||
ramfb_display_update(dpy->con, dpy->ramfb);
|
||||
}
|
||||
return;
|
||||
}
|
||||
format = qemu_drm_format_to_pixman(plane.drm_format);
|
||||
|
@ -300,6 +309,9 @@ static int vfio_display_region_init(VFIOPCIDevice *vdev, Error **errp)
|
|||
vdev->dpy->con = graphic_console_init(DEVICE(vdev), 0,
|
||||
&vfio_display_region_ops,
|
||||
vdev);
|
||||
if (vdev->enable_ramfb) {
|
||||
vdev->dpy->ramfb = ramfb_setup(errp);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue