]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
Merge tag 'irqchip-fixes-5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_cs.c
index 5ca905b4a0fb8a885c07ee1164aba7136baabd60..a52a084158b13742c51603022f66de13066109a0 100644 (file)
@@ -795,29 +795,23 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)
        if (r)
                return r;
 
-       r = amdgpu_sync_fence(adev, &p->job->sync,
-                             fpriv->prt_va->last_pt_update, false);
+       r = amdgpu_sync_vm_fence(&p->job->sync, fpriv->prt_va->last_pt_update);
        if (r)
                return r;
 
        if (amdgpu_mcbp || amdgpu_sriov_vf(adev)) {
-               struct dma_fence *f;
-
                bo_va = fpriv->csa_va;
                BUG_ON(!bo_va);
                r = amdgpu_vm_bo_update(adev, bo_va, false);
                if (r)
                        return r;
 
-               f = bo_va->last_pt_update;
-               r = amdgpu_sync_fence(adev, &p->job->sync, f, false);
+               r = amdgpu_sync_vm_fence(&p->job->sync, bo_va->last_pt_update);
                if (r)
                        return r;
        }
 
        amdgpu_bo_list_for_each_entry(e, p->bo_list) {
-               struct dma_fence *f;
-
                /* ignore duplicates */
                bo = ttm_to_amdgpu_bo(e->tv.bo);
                if (!bo)
@@ -831,8 +825,7 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)
                if (r)
                        return r;
 
-               f = bo_va->last_pt_update;
-               r = amdgpu_sync_fence(adev, &p->job->sync, f, false);
+               r = amdgpu_sync_vm_fence(&p->job->sync, bo_va->last_pt_update);
                if (r)
                        return r;
        }
@@ -845,7 +838,7 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)
        if (r)
                return r;
 
-       r = amdgpu_sync_fence(adev, &p->job->sync, vm->last_update, false);
+       r = amdgpu_sync_vm_fence(&p->job->sync, vm->last_update);
        if (r)
                return r;
 
@@ -916,6 +909,11 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev,
                if (parser->entity && parser->entity != entity)
                        return -EINVAL;
 
+               /* Return if there is no run queue associated with this entity.
+                * Possibly because of disabled HW IP*/
+               if (entity->rq == NULL)
+                       return -EINVAL;
+
                parser->entity = entity;
 
                ring = to_amdgpu_ring(entity->rq->sched);
@@ -987,7 +985,7 @@ static int amdgpu_cs_process_fence_dep(struct amdgpu_cs_parser *p,
                        dma_fence_put(old);
                }
 
-               r = amdgpu_sync_fence(p->adev, &p->job->sync, fence, true);
+               r = amdgpu_sync_fence(&p->job->sync, fence, true);
                dma_fence_put(fence);
                if (r)
                        return r;
@@ -1009,7 +1007,7 @@ static int amdgpu_syncobj_lookup_and_add_to_sync(struct amdgpu_cs_parser *p,
                return r;
        }
 
-       r = amdgpu_sync_fence(p->adev, &p->job->sync, fence, true);
+       r = amdgpu_sync_fence(&p->job->sync, fence, true);
        dma_fence_put(fence);
 
        return r;
@@ -1236,7 +1234,6 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
                goto error_abort;
        }
 
-       job->owner = p->filp;
        p->fence = dma_fence_get(&job->base.s_fence->finished);
 
        amdgpu_ctx_add_fence(p->ctx, entity, p->fence, &seq);