Merge tag 'drm-msm-fixes-2022-06-28' into msm-next-staging
[sfrench/cifs-2.6.git] / drivers / gpu / drm / msm / msm_gem_submit.c
index 6b6feae1f7b62236407082c26ee8f42f46bb82de..c9e4aeb14f4ac0a9ccbcf35e26d833cf0cbdc234 100644 (file)
@@ -324,16 +324,14 @@ static int submit_fence_sync(struct msm_gem_submit *submit, bool no_implicit)
                struct drm_gem_object *obj = &submit->bos[i].obj->base;
                bool write = submit->bos[i].flags & MSM_SUBMIT_BO_WRITE;
 
-               if (!write) {
-                       /* NOTE: _reserve_shared() must happen before
-                        * _add_shared_fence(), which makes this a slightly
-                        * strange place to call it.  OTOH this is a
-                        * convenient can-fail point to hook it in.
-                        */
-                       ret = dma_resv_reserve_shared(obj->resv, 1);
-                       if (ret)
-                               return ret;
-               }
+               /* NOTE: _reserve_shared() must happen before
+                * _add_shared_fence(), which makes this a slightly
+                * strange place to call it.  OTOH this is a
+                * convenient can-fail point to hook it in.
+                */
+               ret = dma_resv_reserve_fences(obj->resv, 1);
+               if (ret)
+                       return ret;
 
                /* exclusive fences must be ordered */
                if (no_implicit && !write)
@@ -406,9 +404,11 @@ static void submit_attach_object_fences(struct msm_gem_submit *submit)
                struct drm_gem_object *obj = &submit->bos[i].obj->base;
 
                if (submit->bos[i].flags & MSM_SUBMIT_BO_WRITE)
-                       dma_resv_add_excl_fence(obj->resv, submit->user_fence);
+                       dma_resv_add_fence(obj->resv, submit->user_fence,
+                                          DMA_RESV_USAGE_WRITE);
                else if (submit->bos[i].flags & MSM_SUBMIT_BO_READ)
-                       dma_resv_add_shared_fence(obj->resv, submit->user_fence);
+                       dma_resv_add_fence(obj->resv, submit->user_fence,
+                                          DMA_RESV_USAGE_READ);
        }
 }