aboutsummaryrefslogtreecommitdiff
path: root/hw/display/virtio-gpu-base.c
diff options
context:
space:
mode:
authorErico Nunes <ernunes@redhat.com>2023-06-26 18:47:05 +0200
committerMichael S. Tsirkin <mst@redhat.com>2023-07-10 16:17:07 -0400
commitee3729d9b088a1988cd6b0a7738fad644fbbc415 (patch)
tree395645779983a66cef57bd0987be3e8b84132f47 /hw/display/virtio-gpu-base.c
parentcd9b8346884353ba9ae6560b44b7cccdf00a6633 (diff)
downloadqemu-ee3729d9b088a1988cd6b0a7738fad644fbbc415.zip
qemu-ee3729d9b088a1988cd6b0a7738fad644fbbc415.tar.gz
qemu-ee3729d9b088a1988cd6b0a7738fad644fbbc415.tar.bz2
virtio-gpu: refactor generate_edid function to virtio_gpu_base
This functionality can be shared with upcoming use in vhost-user-gpu, so move it to the shared file to avoid duplicating it. Signed-off-by: Erico Nunes <ernunes@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230626164708.1163239-2-ernunes@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/display/virtio-gpu-base.c')
-rw-r--r--hw/display/virtio-gpu-base.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index a29f191..7ab7d08 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -17,6 +17,7 @@
#include "migration/blocker.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
+#include "hw/display/edid.h"
#include "trace.h"
void
@@ -51,6 +52,22 @@ virtio_gpu_base_fill_display_info(VirtIOGPUBase *g,
}
}
+void
+virtio_gpu_base_generate_edid(VirtIOGPUBase *g, int scanout,
+ struct virtio_gpu_resp_edid *edid)
+{
+ qemu_edid_info info = {
+ .width_mm = g->req_state[scanout].width_mm,
+ .height_mm = g->req_state[scanout].height_mm,
+ .prefx = g->req_state[scanout].width,
+ .prefy = g->req_state[scanout].height,
+ .refresh_rate = g->req_state[scanout].refresh_rate,
+ };
+
+ edid->size = cpu_to_le32(sizeof(edid->edid));
+ qemu_edid_generate(edid->edid, sizeof(edid->edid), &info);
+}
+
static void virtio_gpu_invalidate_display(void *opaque)
{
}