diff mbox series

[RFC,v1,5/6] drm/virtio: Prepare set_scanout_blob to accept a fence

Message ID 20210913233529.3194401-6-vivek.kasireddy@intel.com (mailing list archive)
State New, archived
Headers show
Series drm: Add support for DRM_CAP_RELEASE_FENCE capability | expand

Commit Message

Kasireddy, Vivek Sept. 13, 2021, 11:35 p.m. UTC
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
---
 drivers/gpu/drm/virtio/virtgpu_drv.h | 4 +++-
 drivers/gpu/drm/virtio/virtgpu_vq.c  | 7 +++++--
 2 files changed, 8 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
index 9126bca47c6d..c219ebde27c3 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drv.h
+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
@@ -406,7 +406,9 @@  virtio_gpu_cmd_set_scanout_blob(struct virtio_gpu_device *vgdev,
 				struct virtio_gpu_object *bo,
 				struct drm_framebuffer *fb,
 				uint32_t width, uint32_t height,
-				uint32_t x, uint32_t y);
+				uint32_t x, uint32_t y,
+				struct virtio_gpu_object_array *objs,
+				struct virtio_gpu_fence *fence);
 
 /* virtgpu_display.c */
 int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev);
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index 2e71e91278b4..760e8b8eefb6 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -1280,7 +1280,9 @@  void virtio_gpu_cmd_set_scanout_blob(struct virtio_gpu_device *vgdev,
 				     struct virtio_gpu_object *bo,
 				     struct drm_framebuffer *fb,
 				     uint32_t width, uint32_t height,
-				     uint32_t x, uint32_t y)
+				     uint32_t x, uint32_t y,
+				     struct virtio_gpu_object_array *objs,
+				     struct virtio_gpu_fence *fence)
 {
 	uint32_t i;
 	struct virtio_gpu_set_scanout_blob *cmd_p;
@@ -1289,6 +1291,7 @@  void virtio_gpu_cmd_set_scanout_blob(struct virtio_gpu_device *vgdev,
 
 	cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
 	memset(cmd_p, 0, sizeof(*cmd_p));
+	vbuf->objs = objs;
 
 	cmd_p->hdr.type = cpu_to_le32(VIRTIO_GPU_CMD_SET_SCANOUT_BLOB);
 	cmd_p->resource_id = cpu_to_le32(bo->hw_res_handle);
@@ -1308,5 +1311,5 @@  void virtio_gpu_cmd_set_scanout_blob(struct virtio_gpu_device *vgdev,
 	cmd_p->r.x = cpu_to_le32(x);
 	cmd_p->r.y = cpu_to_le32(y);
 
-	virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
+	virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
 }