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 <kra...@redhat.com> --- virtio-gpu.tex | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/virtio-gpu.tex b/virtio-gpu.tex index 5d4709ad30..c64ecfe859 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,29 @@ 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; +}; + +struct virtio_gpu_resp_edid { + struct virtio_gpu_ctrl_hdr hdr; + le32 scanout; + le32 size; + u8 edid[512]; +}; +\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. -- 2.9.3 --------------------------------------------------------------------- To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org