Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30b9c96c authored by Gustavo Padovan's avatar Gustavo Padovan Committed by Gerd Hoffmann
Browse files

drm/virtio: add real fence context and seqno



virtio fences were created with no fence context, which would make then
clash with an allocated fence context.

Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.co.uk>
Message-id: 1472660813-28219-2-git-send-email-gustavo@padovan.org
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 5c32c3dd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ typedef void (*virtio_gpu_resp_cb)(struct virtio_gpu_device *vgdev,
struct virtio_gpu_fence_driver {
	atomic64_t       last_seq;
	uint64_t         sync_seq;
	uint64_t         context;
	struct list_head fences;
	spinlock_t       lock;
};
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ int virtio_gpu_fence_emit(struct virtio_gpu_device *vgdev,
	(*fence)->drv = drv;
	(*fence)->seq = ++drv->sync_seq;
	fence_init(&(*fence)->f, &virtio_fence_ops, &drv->lock,
		   0, (*fence)->seq);
		   drv->context, (*fence)->seq);
	fence_get(&(*fence)->f);
	list_add_tail(&(*fence)->node, &drv->fences);
	spin_unlock_irqrestore(&drv->lock, irq_flags);
+1 −0
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags)
	virtio_gpu_init_vq(&vgdev->ctrlq, virtio_gpu_dequeue_ctrl_func);
	virtio_gpu_init_vq(&vgdev->cursorq, virtio_gpu_dequeue_cursor_func);

	vgdev->fence_drv.context = fence_context_alloc(1);
	spin_lock_init(&vgdev->fence_drv.lock);
	INIT_LIST_HEAD(&vgdev->fence_drv.fences);
	INIT_LIST_HEAD(&vgdev->cap_cache);