aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/virtio/virtgpu_plane.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_plane.c')
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_plane.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
index ead5c53d4e21..024c2aa0c929 100644
--- a/drivers/gpu/drm/virtio/virtgpu_plane.c
+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
@@ -130,11 +130,12 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
130 plane->state->src_h >> 16, 130 plane->state->src_h >> 16,
131 plane->state->src_x >> 16, 131 plane->state->src_x >> 16,
132 plane->state->src_y >> 16); 132 plane->state->src_y >> 16);
133 virtio_gpu_cmd_resource_flush(vgdev, handle, 133 if (handle)
134 plane->state->src_x >> 16, 134 virtio_gpu_cmd_resource_flush(vgdev, handle,
135 plane->state->src_y >> 16, 135 plane->state->src_x >> 16,
136 plane->state->src_w >> 16, 136 plane->state->src_y >> 16,
137 plane->state->src_h >> 16); 137 plane->state->src_w >> 16,
138 plane->state->src_h >> 16);
138} 139}
139 140
140static int virtio_gpu_cursor_prepare_fb(struct drm_plane *plane, 141static int virtio_gpu_cursor_prepare_fb(struct drm_plane *plane,
@@ -168,8 +169,10 @@ static void virtio_gpu_cursor_cleanup_fb(struct drm_plane *plane,
168 return; 169 return;
169 170
170 vgfb = to_virtio_gpu_framebuffer(plane->state->fb); 171 vgfb = to_virtio_gpu_framebuffer(plane->state->fb);
171 if (vgfb->fence) 172 if (vgfb->fence) {
172 virtio_gpu_fence_cleanup(vgfb->fence); 173 dma_fence_put(&vgfb->fence->f);
174 vgfb->fence = NULL;
175 }
173} 176}
174 177
175static void virtio_gpu_cursor_plane_update(struct drm_plane *plane, 178static void virtio_gpu_cursor_plane_update(struct drm_plane *plane,