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 | #include <linux/types.h> | 41 | #include <linux/types.h> |
| 42 | 42 | ||
| 43 | #define VIRTIO_GPU_F_VIRGL 0 | 43 | #define VIRTIO_GPU_F_VIRGL 0 |
| 44 | #define VIRTIO_GPU_F_EDID 1 | ||
| 44 | 45 | ||
| 45 | enum virtio_gpu_ctrl_type { | 46 | enum virtio_gpu_ctrl_type { |
| 46 | VIRTIO_GPU_UNDEFINED = 0, | 47 | VIRTIO_GPU_UNDEFINED = 0, |
| @@ -56,6 +57,7 @@ enum virtio_gpu_ctrl_type { · 9 unmodified lines | |||
| 56 | VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, | 57 | VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, |
| 57 | VIRTIO_GPU_CMD_GET_CAPSET_INFO, | 58 | VIRTIO_GPU_CMD_GET_CAPSET_INFO, |
| 58 | VIRTIO_GPU_CMD_GET_CAPSET, | 59 | VIRTIO_GPU_CMD_GET_CAPSET, |
| 60 | VIRTIO_GPU_CMD_GET_EDID, | ||
| 59 | 61 | ||
| 60 | /* 3d commands */ | 62 | /* 3d commands */ |
| 61 | VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, | 63 | VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, |
| @@ -76,6 +78,7 @@ enum virtio_gpu_ctrl_type { · 14 unmodified lines | |||
| 76 | VIRTIO_GPU_RESP_OK_DISPLAY_INFO, | 78 | VIRTIO_GPU_RESP_OK_DISPLAY_INFO, |
| 77 | VIRTIO_GPU_RESP_OK_CAPSET_INFO, | 79 | VIRTIO_GPU_RESP_OK_CAPSET_INFO, |
| 78 | VIRTIO_GPU_RESP_OK_CAPSET, | 80 | VIRTIO_GPU_RESP_OK_CAPSET, |
| 81 | VIRTIO_GPU_RESP_OK_EDID, | ||
| 79 | 82 | ||
| 80 | /* error responses */ | 83 | /* error responses */ |
| 81 | VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, | 84 | VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, |
| @@ -291,6 +294,21 @@ struct virtio_gpu_resp_capset { · 209 unmodified lines | |||
| 291 | __u8 capset_data[]; | 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 | #define VIRTIO_GPU_EVENT_DISPLAY (1 << 0) | 312 | #define VIRTIO_GPU_EVENT_DISPLAY (1 << 0) |
| 295 | 313 | ||
| 296 | struct virtio_gpu_config { | 314 | struct virtio_gpu_config { |