projects
/
platform
/
kernel
/
linux-rpi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3ef0ca0
)
drm/nouveau: wait for moving fence after pinning v2
author
Christian König
<christian.koenig@amd.com>
Mon, 21 Jun 2021 11:36:35 +0000
(13:36 +0200)
committer
Sasha Levin
<sashal@kernel.org>
Wed, 30 Jun 2021 12:47:16 +0000
(08:47 -0400)
commit
17b11f71795abdce46f62a808f906857e525cea8
upstream.
We actually need to wait for the moving fence after pinning
the BO to make sure that the pin is completed.
v2: grab the lock while waiting
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
References: https://lore.kernel.org/dri-devel/
20210621151758
.2347474-1-daniel.vetter@ffwll.ch/
CC: stable@kernel.org
Link:
https://patchwork.freedesktop.org/patch/msgid/20210622114506.106349-1-christian.koenig@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/nouveau/nouveau_prime.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/nouveau/nouveau_prime.c
b/drivers/gpu/drm/nouveau/nouveau_prime.c
index
b2ecb91
..
5f5b87f
100644
(file)
--- a/
drivers/gpu/drm/nouveau/nouveau_prime.c
+++ b/
drivers/gpu/drm/nouveau/nouveau_prime.c
@@
-111,7
+111,22
@@
int nouveau_gem_prime_pin(struct drm_gem_object *obj)
if (ret)
return -EINVAL;
- return 0;
+ ret = ttm_bo_reserve(&nvbo->bo, false, false, NULL);
+ if (ret)
+ goto error;
+
+ if (nvbo->bo.moving)
+ ret = dma_fence_wait(nvbo->bo.moving, true);
+
+ ttm_bo_unreserve(&nvbo->bo);
+ if (ret)
+ goto error;
+
+ return ret;
+
+error:
+ nouveau_bo_unpin(nvbo);
+ return ret;
}
void nouveau_gem_prime_unpin(struct drm_gem_object *obj)