drm/etnaviv: stop using dma_resv_excl_fence v2
authorChristian König <christian.koenig@amd.com>
Wed, 3 Nov 2021 08:34:29 +0000 (09:34 +0100)
committerChristian König <christian.koenig@amd.com>
Thu, 24 Mar 2022 09:09:20 +0000 (10:09 +0100)
We can get the excl fence together with the shared ones as well.

v2: rename the member to fences as well

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Russell King <linux+etnaviv@armlinux.org.uk>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: etnaviv@lists.freedesktop.org
Link: https://patchwork.freedesktop.org/patch/msgid/20220321135856.1331-5-christian.koenig@amd.com
drivers/gpu/drm/etnaviv/etnaviv_gem.h
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
drivers/gpu/drm/etnaviv/etnaviv_sched.c

index 98e60df..8983a0e 100644 (file)
@@ -80,9 +80,8 @@ 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;
+       unsigned int nr_fences;
+       struct dma_fence **fences;
 };
 
 /* Created per submit-ioctl, to track bo's and cmdstream bufs, etc,
index 4eb00a0..592cbb3 100644 (file)
@@ -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_fences, &bo->fences);
+               if (ret)
+                       return ret;
        }
 
        return ret;
index 35e5ef7..a8452ce 100644 (file)
@@ -39,31 +39,21 @@ 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])
+               for (j = 0; j < bo->nr_fences; j++) {
+                       if (!bo->fences[j])
                                continue;
 
-                       fence = bo->shared[j];
-                       bo->shared[j] = NULL;
+                       fence = bo->fences[j];
+                       bo->fences[j] = NULL;
 
                        if (!dma_fence_is_signaled(fence))
                                return fence;
 
                        dma_fence_put(fence);
                }
-               kfree(bo->shared);
-               bo->nr_shared = 0;
-               bo->shared = NULL;
+               kfree(bo->fences);
+               bo->nr_fences = 0;
+               bo->fences = NULL;
        }
 
        return NULL;