OSDN Git Service

drm/virtio: simplify cursor updates
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 29 Aug 2019 10:32:46 +0000 (12:32 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 4 Sep 2019 04:54:08 +0000 (06:54 +0200)
No need to do the reservation dance,
we can just wait on the fence directly.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20190829103301.3539-4-kraxel@redhat.com
drivers/gpu/drm/virtio/virtgpu_plane.c

index fe5efb2..f23622b 100644 (file)
@@ -201,7 +201,6 @@ static void virtio_gpu_cursor_plane_update(struct drm_plane *plane,
        struct virtio_gpu_framebuffer *vgfb;
        struct virtio_gpu_object *bo = NULL;
        uint32_t handle;
-       int ret = 0;
 
        if (plane->state->crtc)
                output = drm_crtc_to_virtio_gpu_output(plane->state->crtc);
@@ -225,15 +224,9 @@ static void virtio_gpu_cursor_plane_update(struct drm_plane *plane,
                         cpu_to_le32(plane->state->crtc_w),
                         cpu_to_le32(plane->state->crtc_h),
                         0, 0, vgfb->fence);
-               ret = virtio_gpu_object_reserve(bo, false);
-               if (!ret) {
-                       dma_resv_add_excl_fence(bo->tbo.base.resv,
-                                                         &vgfb->fence->f);
-                       dma_fence_put(&vgfb->fence->f);
-                       vgfb->fence = NULL;
-                       virtio_gpu_object_unreserve(bo);
-                       virtio_gpu_object_wait(bo, false);
-               }
+               dma_fence_wait(&vgfb->fence->f, true);
+               dma_fence_put(&vgfb->fence->f);
+               vgfb->fence = NULL;
        }
 
        if (plane->state->fb != old_state->fb) {