From: Gerd Hoffmann <kraxel@redhat.com>
Date: Tue, 15 Sep 2015 06:20:46 +0000 (+0200)
Subject: virtio-gpu: wait for cursor updates finish
X-Git-Tag: firefly_0821_release~176^2~721^2~23^2~5
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6d41533433e2eff26005ee39d103948fa65dd891;p=firefly-linux-kernel-4.4.55.git

virtio-gpu: wait for cursor updates finish

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---

diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index 4e160efc9402..c9c1427c361d 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -90,6 +90,14 @@ static int virtio_gpu_crtc_cursor_set(struct drm_crtc *crtc,
 					   cpu_to_le32(64),
 					   cpu_to_le32(64),
 					   0, 0, &fence);
+	ret = virtio_gpu_object_reserve(qobj, false);
+	if (!ret) {
+		reservation_object_add_excl_fence(qobj->tbo.resv,
+						  &fence->f);
+		fence_put(&fence->f);
+		virtio_gpu_object_unreserve(qobj);
+		virtio_gpu_object_wait(qobj, false);
+	}
 
 	output->cursor.hdr.type = cpu_to_le32(VIRTIO_GPU_CMD_UPDATE_CURSOR);
 	output->cursor.resource_id = cpu_to_le32(qobj->hw_res_handle);