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.
Showing the changes to include/uapi/linux (1 of 1 file). Show all
Unified · Split
| @@ -41,6 +41,7 @@ · 40 unmodified lines | ||
| 41 | 41 | #include <linux/types.h> |
| 42 | 42 | |
| 43 | 43 | #define VIRTIO_GPU_F_VIRGL 0 |
| 44 | +#define VIRTIO_GPU_F_EDID 1 | |
| 44 | 45 | |
| 45 | 46 | enum virtio_gpu_ctrl_type { |
| 46 | 47 | VIRTIO_GPU_UNDEFINED = 0, |
| @@ -56,6 +57,7 @@ enum virtio_gpu_ctrl_type { · 9 unmodified lines | ||
| 56 | 57 | VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, |
| 57 | 58 | VIRTIO_GPU_CMD_GET_CAPSET_INFO, |
| 58 | 59 | VIRTIO_GPU_CMD_GET_CAPSET, |
| 60 | + VIRTIO_GPU_CMD_GET_EDID, | |
| 59 | 61 | |
| 60 | 62 | /* 3d commands */ |
| 61 | 63 | VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, |
| @@ -76,6 +78,7 @@ enum virtio_gpu_ctrl_type { · 14 unmodified lines | ||
| 76 | 78 | VIRTIO_GPU_RESP_OK_DISPLAY_INFO, |
| 77 | 79 | VIRTIO_GPU_RESP_OK_CAPSET_INFO, |
| 78 | 80 | VIRTIO_GPU_RESP_OK_CAPSET, |
| 81 | + VIRTIO_GPU_RESP_OK_EDID, | |
| 79 | 82 | |
| 80 | 83 | /* error responses */ |
| 81 | 84 | VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, |
| @@ -291,6 +294,21 @@ struct virtio_gpu_resp_capset { · 209 unmodified lines | ||
| 291 | 294 | __u8 capset_data[]; |
| 292 | 295 | }; |
| 293 | 296 | |
| 297 | +/* VIRTIO_GPU_CMD_GET_EDID */ | |
| 298 | +struct virtio_gpu_cmd_get_edid { | |
| 299 | + struct virtio_gpu_ctrl_hdr hdr; | |
| 300 | + __le32 scanout; | |
| 301 | + __le32 padding; | |
| 302 | +}; | |
| 303 | + | |
| 304 | +/* VIRTIO_GPU_RESP_OK_EDID */ | |
| 305 | +struct virtio_gpu_resp_edid { | |
| 306 | + struct virtio_gpu_ctrl_hdr hdr; | |
| 307 | + __le32 size; | |
| 308 | + __le32 padding; | |
| 309 | + __u8 edid[1024]; | |
| 310 | +}; | |
| 311 | + | |
| 294 | 312 | #define VIRTIO_GPU_EVENT_DISPLAY (1 << 0) |
| 295 | 313 | |
| 296 | 314 | struct virtio_gpu_config { |