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>
This commit is contained in:
parent
cd9b834688
commit
ee3729d9b0
@ -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)
|
||||
{
|
||||
}
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include "hw/virtio/virtio-gpu-bswap.h"
|
||||
#include "hw/virtio/virtio-gpu-pixman.h"
|
||||
#include "hw/virtio/virtio-bus.h"
|
||||
#include "hw/display/edid.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "qemu/log.h"
|
||||
#include "qemu/module.h"
|
||||
@ -207,23 +206,6 @@ void virtio_gpu_get_display_info(VirtIOGPU *g,
|
||||
sizeof(display_info));
|
||||
}
|
||||
|
||||
static void
|
||||
virtio_gpu_generate_edid(VirtIOGPU *g, int scanout,
|
||||
struct virtio_gpu_resp_edid *edid)
|
||||
{
|
||||
VirtIOGPUBase *b = VIRTIO_GPU_BASE(g);
|
||||
qemu_edid_info info = {
|
||||
.width_mm = b->req_state[scanout].width_mm,
|
||||
.height_mm = b->req_state[scanout].height_mm,
|
||||
.prefx = b->req_state[scanout].width,
|
||||
.prefy = b->req_state[scanout].height,
|
||||
.refresh_rate = b->req_state[scanout].refresh_rate,
|
||||
};
|
||||
|
||||
edid->size = cpu_to_le32(sizeof(edid->edid));
|
||||
qemu_edid_generate(edid->edid, sizeof(edid->edid), &info);
|
||||
}
|
||||
|
||||
void virtio_gpu_get_edid(VirtIOGPU *g,
|
||||
struct virtio_gpu_ctrl_command *cmd)
|
||||
{
|
||||
@ -242,7 +224,7 @@ void virtio_gpu_get_edid(VirtIOGPU *g,
|
||||
trace_virtio_gpu_cmd_get_edid(get_edid.scanout);
|
||||
memset(&edid, 0, sizeof(edid));
|
||||
edid.hdr.type = VIRTIO_GPU_RESP_OK_EDID;
|
||||
virtio_gpu_generate_edid(g, get_edid.scanout, &edid);
|
||||
virtio_gpu_base_generate_edid(VIRTIO_GPU_BASE(g), get_edid.scanout, &edid);
|
||||
virtio_gpu_ctrl_response(g, cmd, &edid.hdr, sizeof(edid));
|
||||
}
|
||||
|
||||
|
@ -242,6 +242,8 @@ void virtio_gpu_base_reset(VirtIOGPUBase *g);
|
||||
void virtio_gpu_base_fill_display_info(VirtIOGPUBase *g,
|
||||
struct virtio_gpu_resp_display_info *dpy_info);
|
||||
|
||||
void virtio_gpu_base_generate_edid(VirtIOGPUBase *g, int scanout,
|
||||
struct virtio_gpu_resp_edid *edid);
|
||||
/* virtio-gpu.c */
|
||||
void virtio_gpu_ctrl_response(VirtIOGPU *g,
|
||||
struct virtio_gpu_ctrl_command *cmd,
|
||||
|
Loading…
Reference in New Issue
Block a user