diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2018-10-24 14:15:51 +0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2018-11-30 15:24:37 -0500 |
commit | 31d2e3565d9cc57013af00fae986d28a001a7d87 (patch) | |
tree | 3fdb179ca1c8f71edebcd854abec658d2d7ac941 | |
parent | 94384142f64f11acbbaace100b913e49e9c5e71b (diff) | |
download | virtio-spec-31d2e3565d9cc57013af00fae986d28a001a7d87.tar.gz |
Add VIRTIO_GPU_F_EDID to virtio-gpu.
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: Gerd Hoffmann <kraxel@redhat.com>
Fixes: https://github.com/oasis-tcs/virtio-spec/issues/22
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | virtio-gpu.tex | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/virtio-gpu.tex b/virtio-gpu.tex index 5d4709a..0cf2209 100644 --- a/virtio-gpu.tex +++ b/virtio-gpu.tex @@ -34,6 +34,7 @@ control queue. \begin{description} \item[VIRTIO_GPU_F_VIRGL (0)] virgl 3D mode is supported. +\item[VIRTIO_GPU_F_EDID (1)] EDID is supported. \end{description} \subsection{Device configuration layout}\label{sec:Device Types / GPU Device / Device configuration layout} @@ -171,6 +172,9 @@ enum virtio_gpu_ctrl_type { VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D, VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING, VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, + VIRTIO_GPU_CMD_GET_CAPSET_INFO, + VIRTIO_GPU_CMD_GET_CAPSET, + VIRTIO_GPU_CMD_GET_EDID, /* cursor commands */ VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300, @@ -179,6 +183,9 @@ enum virtio_gpu_ctrl_type { /* success responses */ VIRTIO_GPU_RESP_OK_NODATA = 0x1100, VIRTIO_GPU_RESP_OK_DISPLAY_INFO, + VIRTIO_GPU_RESP_OK_CAPSET_INFO, + VIRTIO_GPU_RESP_OK_CAPSET, + VIRTIO_GPU_RESP_OK_EDID, /* error responses */ VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, @@ -275,6 +282,30 @@ The \field{enabled} field is set when the user enabled the display. It is roughly the same as the connected state of a phyiscal display connector. +\item[VIRTIO_GPU_CMD_GET_EDID] Retrieve the EDID data for a given + scanout. Request data is \field{struct virtio_gpu_get_edid}). + Response type is VIRTIO_GPU_RESP_OK_EDID, response data is + \field{struct virtio_gpu_resp_edid}. Support is optional and + negotiated using the VIRTIO_GPU_F_EDID feature flag. + +\begin{lstlisting} +struct virtio_gpu_get_edid { + struct virtio_gpu_ctrl_hdr hdr; + le32 scanout; + le32 padding; +}; + +struct virtio_gpu_resp_edid { + struct virtio_gpu_ctrl_hdr hdr; + le32 size; + le32 padding; + u8 edid[1024]; +}; +\end{lstlisting} + +The response contains the EDID display data blob (as specified by +VESA) for the scanout. + \item[VIRTIO_GPU_CMD_RESOURCE_CREATE_2D] Create a 2D resource on the host. Request data is \field{struct virtio_gpu_resource_create_2d}. Response type is VIRTIO_GPU_RESP_OK_NODATA. |