aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/virtio/virtgpu_plane.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2019-01-17 18:20:10 -0500
committerDave Airlie <airlied@redhat.com>2019-01-17 18:31:28 -0500
commitf164a94c2c87752caeb1a3cbe068c440e7f7921f (patch)
treee914296ef0ce1df83e506a12bf4306d5aa468b24 /drivers/gpu/drm/virtio/virtgpu_plane.c
parentb122153c7198e35fcb981ca9efd63b0df8ef3eab (diff)
parent94520db52fc0e931327bb77fe79a952a0e9dd2b0 (diff)
Merge tag 'drm-misc-next-2019-01-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 5.1: UAPI Changes: - New fourcc identifier for ARM Framebuffer Compression v1.3 Cross-subsystem Changes: Core Changes: - Reorganisation of drm_device and drm_framebuffer headers - Cleanup of the drmP inclusion - Fix leaks in the fb-helpers - Allow for depth different from bpp in fb-helper fbdev emulation - Remove drm_mode_object from drm_display_mode Driver Changes: - Add reflection properties to rockchip - a bunch of fixes for virtio - a bunch of fixes for dp_mst and drivers using it, and introduction of a new refcounting scheme - Convertion of bochs to atomic and generic fbdev emulation - Allow meson to remove the firmware framebuffers [airlied: patch rcar-du to add drm_modes.h] Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maxime Ripard <maxime.ripard@bootlin.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190116200428.u2n4jbk4mzza7n6e@flea
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,