summaryrefslogtreecommitdiff
path: root/include/uapi
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@google.com>2020-04-23 15:36:45 -0700
committerLingfeng Yang <lfy@google.com>2020-04-28 19:37:50 -0700
commit69b005be6745d5779c33e2c93d0eb5f8fa3469b7 (patch)
tree4308ff413f6fa02e17ac9b90f5402efa55e49e0b /include/uapi
parent8654841a61c359ac26cd3634ea2081436736d113 (diff)
ANDROID: drm/virtio: rebase to latest virgl/drm-misc-next (take 2)
So ToT + v4.14 can share same hypercall interface. TEST=compile Signed-off-by: Gurchetan Singh <gurchetansingh@google.com> Signed-off-by: Lingfeng Yang <lfy@google.com> Bug: 153580313 Change-Id: Ifd6d8d50983461380f24988cef5a0435a2ecc59b
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/drm/virtgpu_drm.h35
-rw-r--r--include/uapi/linux/virtio_gpu.h38
2 files changed, 36 insertions, 37 deletions
diff --git a/include/uapi/drm/virtgpu_drm.h b/include/uapi/drm/virtgpu_drm.h
index 6b9c8a5f87e7..00da2d183dca 100644
--- a/include/uapi/drm/virtgpu_drm.h
+++ b/include/uapi/drm/virtgpu_drm.h
@@ -70,6 +70,7 @@ struct drm_virtgpu_execbuffer {
__s32 fence_fd; /* in/out fence fd (see VIRTGPU_EXECBUF_FENCE_FD_IN/OUT) */
};
+
#define VIRTGPU_PARAM_3D_FEATURES 1 /* do we have 3D features in the hw */
#define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2 /* do we have the capset fix */
#define VIRTGPU_PARAM_RESOURCE_BLOB 3 /* DRM_VIRTGPU_RESOURCE_CREATE_BLOB */
@@ -150,26 +151,28 @@ struct drm_virtgpu_get_caps {
};
struct drm_virtgpu_resource_create_blob {
-#define VIRTGPU_RES_BLOB_GUEST_MASK 0x000f
-#define VIRTGPU_RES_BLOB_GUEST_NONE 0x0000
-#define VIRTGPU_RES_BLOB_GUEST_SYSTEM 0x0001
-
-#define VIRTGPU_RES_BLOB_HOST_MASK 0x00f0
-#define VIRTGPU_RES_BLOB_HOST_NONE 0x0000
-#define VIRTGPU_RES_BLOB_HOST 0x0010
-
-#define VIRTGPU_RES_BLOB_USE_MASK 0x0f00
-#define VIRTGPU_RES_BLOB_USE_NONE 0x0000
-#define VIRTGPU_RES_BLOB_USE_MAPPABLE 0x0100
-#define VIRTGPU_RES_BLOB_USE_SHAREABLE 0x0200
-#define VIRTGPU_RES_BLOB_USE_CROSS_DEVICE 0x0400
- __u32 flags;
+#define VIRTGPU_BLOB_MEM_GUEST 0x0001
+#define VIRTGPU_BLOB_MEM_HOST 0x0002
+#define VIRTGPU_BLOB_MEM_HOST_GUEST 0x0003
+
+#define VIRTGPU_BLOB_FLAG_MAPPABLE 0x0001
+#define VIRTGPU_BLOB_FLAG_SHAREABLE 0x0002
+#define VIRTGPU_BLOB_FLAG_CROSS_DEVICE 0x0004
+ /* zero is invalid blob_mem */
+ __u32 blob_mem;
+ __u32 blob_flags;
__u32 bo_handle;
__u32 res_handle;
+ __u64 size;
+
+ /*
+ * for 3D contexts with VIRTGPU_BLOB_MEM_HOSTGUEST and
+ * VIRTGPU_BLOB_MEM_HOST otherwise, must be zero.
+ */
+ __u32 pad;
__u32 cmd_size;
__u64 cmd;
- __u64 size;
- __u64 memory_id;
+ __u64 blob_id;
};
#define DRM_IOCTL_VIRTGPU_MAP \
diff --git a/include/uapi/linux/virtio_gpu.h b/include/uapi/linux/virtio_gpu.h
index cd303076225e..f44af31f7990 100644
--- a/include/uapi/linux/virtio_gpu.h
+++ b/include/uapi/linux/virtio_gpu.h
@@ -84,6 +84,9 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_CMD_GET_CAPSET,
VIRTIO_GPU_CMD_GET_EDID,
VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID,
+ VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB,
+ VIRTIO_GPU_CMD_RESOURCE_MAP,
+ VIRTIO_GPU_CMD_RESOURCE_UNMAP,
/* 3d commands */
VIRTIO_GPU_CMD_CTX_CREATE = 0x0200,
@@ -94,9 +97,6 @@ enum virtio_gpu_ctrl_type {
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D,
VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D,
VIRTIO_GPU_CMD_SUBMIT_3D,
- VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB,
- VIRTIO_GPU_CMD_RESOURCE_MAP,
- VIRTIO_GPU_CMD_RESOURCE_UNMAP,
/* cursor commands */
VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300,
@@ -113,7 +113,6 @@ enum virtio_gpu_ctrl_type {
/* CHROMIUM: legacy responses */
VIRTIO_GPU_RESP_OK_RESOURCE_PLANE_INFO_LEGACY = 0x1104,
-
/* CHROMIUM: success responses */
VIRTIO_GPU_RESP_OK_RESOURCE_PLANE_INFO = 0x11FF,
@@ -303,6 +302,7 @@ struct virtio_gpu_cmd_submit {
};
#define VIRTIO_GPU_CAPSET_VIRGL 1
+#define VIRTIO_GPU_CAPSET_VIRGL2 2
/* VIRTIO_GPU_CMD_GET_CAPSET_INFO */
struct virtio_gpu_get_capset_info {
@@ -393,29 +393,25 @@ struct virtio_gpu_resp_resource_uuid {
__u8 uuid[16];
};
-
/* VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB */
struct virtio_gpu_resource_create_blob {
struct virtio_gpu_ctrl_hdr hdr;
__le32 resource_id;
-#define VIRTIO_GPU_RES_BLOB_GUEST_MASK 0x000f
-#define VIRTIO_GPU_RES_BLOB_GUEST_NONE 0x0000
-#define VIRTIO_GPU_RES_BLOB_GUEST_SYSTEM 0x0001
-
-#define VIRTIO_GPU_RES_BLOB_HOST_MASK 0x00f0
-#define VIRTIO_GPU_RES_BLOB_HOST_NONE 0x0000
-#define VIRTIO_GPU_RES_BLOB_HOST 0x0010
-
-#define VIRTIO_GPU_RES_BLOB_USE_MASK 0x0f00
-#define VIRTIO_GPU_RES_BLOB_USE_NONE 0x0000
-#define VIRTIO_GPU_RES_BLOB_USE_MAPPABLE 0x0100
-#define VIRTIO_GPU_RES_BLOB_USE_SHAREABLE 0x0200
-#define VIRTIO_GPU_RES_BLOB_USE_CROSS_DEVICE 0x0400
- __le32 flags;
+#define VIRTIO_GPU_BLOB_MEM_GUEST 0x0001
+#define VIRTIO_GPU_BLOB_MEM_HOST3D 0x0002
+#define VIRTIO_GPU_BLOB_MEM_HOST3D_GUEST 0x0003
+#define VIRTIO_GPU_BLOB_MEM_HOSTSYS 0x0004
+#define VIRTIO_GPU_BLOB_MEM_HOSTSYS_GUEST 0x0005
+
+#define VIRTIO_GPU_BLOB_FLAG_USE_MAPPABLE 0x0001
+#define VIRTIO_GPU_BLOB_FLAG_USE_SHAREABLE 0x0002
+#define VIRTIO_GPU_BLOB_FLAG_USE_CROSS_DEVICE 0x0004
+ /* zero is invalid blob mem */
+ __le32 blob_mem;
+ __le32 blob_flags;
+ __le64 blob_id;
__le64 size;
- __le64 memory_id;
__le32 nr_entries;
- __le32 padding;
/*
* sizeof(nr_entries * virtio_gpu_mem_entry) bytes follow
*/