Commit 610c0c2b authored by Gerd Hoffmann's avatar Gerd Hoffmann

virtio-gpu: add VIRTIO_GPU_F_EDID feature

The feature allows the guest request an EDID blob (describing monitor
capabilities) for a given scanout (aka virtual monitor connector).

It brings a new command message, which has just a scanout field (beside
the standard virtio-gpu header) and a response message which carries the
EDID data.
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20181030063206.19528-2-kraxel@redhat.com
parent 0081cdfe
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include <linux/types.h> #include <linux/types.h>
#define VIRTIO_GPU_F_VIRGL 0 #define VIRTIO_GPU_F_VIRGL 0
#define VIRTIO_GPU_F_EDID 1
enum virtio_gpu_ctrl_type { enum virtio_gpu_ctrl_type {
VIRTIO_GPU_UNDEFINED = 0, VIRTIO_GPU_UNDEFINED = 0,
...@@ -56,6 +57,7 @@ enum virtio_gpu_ctrl_type { ...@@ -56,6 +57,7 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING,
VIRTIO_GPU_CMD_GET_CAPSET_INFO, VIRTIO_GPU_CMD_GET_CAPSET_INFO,
VIRTIO_GPU_CMD_GET_CAPSET, VIRTIO_GPU_CMD_GET_CAPSET,
VIRTIO_GPU_CMD_GET_EDID,
/* 3d commands */ /* 3d commands */
VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, VIRTIO_GPU_CMD_CTX_CREATE = 0x0200,
...@@ -76,6 +78,7 @@ enum virtio_gpu_ctrl_type { ...@@ -76,6 +78,7 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_RESP_OK_DISPLAY_INFO, VIRTIO_GPU_RESP_OK_DISPLAY_INFO,
VIRTIO_GPU_RESP_OK_CAPSET_INFO, VIRTIO_GPU_RESP_OK_CAPSET_INFO,
VIRTIO_GPU_RESP_OK_CAPSET, VIRTIO_GPU_RESP_OK_CAPSET,
VIRTIO_GPU_RESP_OK_EDID,
/* error responses */ /* error responses */
VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200,
...@@ -291,6 +294,21 @@ struct virtio_gpu_resp_capset { ...@@ -291,6 +294,21 @@ struct virtio_gpu_resp_capset {
__u8 capset_data[]; __u8 capset_data[];
}; };
/* VIRTIO_GPU_CMD_GET_EDID */
struct virtio_gpu_cmd_get_edid {
struct virtio_gpu_ctrl_hdr hdr;
__le32 scanout;
__le32 padding;
};
/* VIRTIO_GPU_RESP_OK_EDID */
struct virtio_gpu_resp_edid {
struct virtio_gpu_ctrl_hdr hdr;
__le32 size;
__le32 padding;
__u8 edid[1024];
};
#define VIRTIO_GPU_EVENT_DISPLAY (1 << 0) #define VIRTIO_GPU_EVENT_DISPLAY (1 << 0)
struct virtio_gpu_config { struct virtio_gpu_config {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment