We can get the excl fence together with the shared ones as well.

Signed-off-by: Christian König <christian.koe...@amd.com>
Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>
Cc: Lucas Stach <l.st...@pengutronix.de>
Cc: Russell King <linux+etna...@armlinux.org.uk>
Cc: Christian Gmeiner <christian.gmei...@gmail.com>
Cc: etna...@lists.freedesktop.org
---
 drivers/gpu/drm/etnaviv/etnaviv_gem.h        |  1 -
 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 14 +++++---------
 drivers/gpu/drm/etnaviv/etnaviv_sched.c      | 10 ----------
 3 files changed, 5 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.h 
b/drivers/gpu/drm/etnaviv/etnaviv_gem.h
index 98e60df882b6..f596d743baa3 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem.h
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.h
@@ -80,7 +80,6 @@ struct etnaviv_gem_submit_bo {
        u64 va;
        struct etnaviv_gem_object *obj;
        struct etnaviv_vram_mapping *mapping;
-       struct dma_fence *excl;
        unsigned int nr_shared;
        struct dma_fence **shared;
 };
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c 
b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index 4eb00a0cb650..385ea141c23e 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -188,15 +188,11 @@ static int submit_fence_sync(struct etnaviv_gem_submit 
*submit)
                if (submit->flags & ETNA_SUBMIT_NO_IMPLICIT)
                        continue;
 
-               if (bo->flags & ETNA_SUBMIT_BO_WRITE) {
-                       ret = dma_resv_get_fences(robj, true, &bo->nr_shared,
-                                                 &bo->shared);
-                       if (ret)
-                               return ret;
-               } else {
-                       bo->excl = dma_fence_get(dma_resv_excl_fence(robj));
-               }
-
+               ret = dma_resv_get_fences(robj,
+                                         bo->flags & ETNA_SUBMIT_BO_WRITE,
+                                         &bo->nr_shared, &bo->shared);
+               if (ret)
+                       return ret;
        }
 
        return ret;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c 
b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index 35e5ef7dbdcc..59277dc62011 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -39,16 +39,6 @@ etnaviv_sched_dependency(struct drm_sched_job *sched_job,
                struct etnaviv_gem_submit_bo *bo = &submit->bos[i];
                int j;
 
-               if (bo->excl) {
-                       fence = bo->excl;
-                       bo->excl = NULL;
-
-                       if (!dma_fence_is_signaled(fence))
-                               return fence;
-
-                       dma_fence_put(fence);
-               }
-
                for (j = 0; j < bo->nr_shared; j++) {
                        if (!bo->shared[j])
                                continue;
-- 
2.25.1

Reply via email to