diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1692-drm-amdgpu-drop-the-ib-from-the-VM-update-parameters.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1692-drm-amdgpu-drop-the-ib-from-the-VM-update-parameters.patch | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1692-drm-amdgpu-drop-the-ib-from-the-VM-update-parameters.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1692-drm-amdgpu-drop-the-ib-from-the-VM-update-parameters.patch new file mode 100644 index 00000000..7d7c4aea --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1692-drm-amdgpu-drop-the-ib-from-the-VM-update-parameters.patch @@ -0,0 +1,131 @@ +From edd9692414c7dbc2d8de3a66bacf9220d85e2540 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Thu, 21 Mar 2019 16:43:39 +0100 +Subject: [PATCH 1692/2940] drm/amdgpu: drop the ib from the VM update + parameters +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It is redundant with the job pointer. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 5 ----- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 24 +++++++++++---------- + 2 files changed, 13 insertions(+), 16 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +index 65e2f0c3ebf6..966e47f8f296 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +@@ -203,11 +203,6 @@ struct amdgpu_vm_update_params { + */ + struct amdgpu_job *job; + +- /** +- * @ib: indirect buffer to fill with commands +- */ +- struct amdgpu_ib *ib; +- + /** + * @num_dw_left: number of dw left for the IB + */ +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c +index 4bccd69fe30d..ddd181f5ed37 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c +@@ -78,7 +78,6 @@ static int amdgpu_vm_sdma_prepare(struct amdgpu_vm_update_params *p, + return r; + + p->num_dw_left = ndw; +- p->ib = &p->job->ibs[0]; + return 0; + } + +@@ -95,15 +94,16 @@ static int amdgpu_vm_sdma_commit(struct amdgpu_vm_update_params *p, + struct dma_fence **fence) + { + struct amdgpu_bo *root = p->vm->root.base.bo; ++ struct amdgpu_ib *ib = p->job->ibs; + struct amdgpu_ring *ring; + struct dma_fence *f; + int r; + + ring = container_of(p->vm->entity.rq->sched, struct amdgpu_ring, sched); + +- WARN_ON(p->ib->length_dw == 0); +- amdgpu_ring_pad_ib(ring, p->ib); +- WARN_ON(p->ib->length_dw > p->num_dw_left); ++ WARN_ON(ib->length_dw == 0); ++ amdgpu_ring_pad_ib(ring, ib); ++ WARN_ON(ib->length_dw > p->num_dw_left); + r = amdgpu_job_submit(p->job, &p->vm->entity, + AMDGPU_FENCE_OWNER_VM, &f); + if (r) +@@ -135,14 +135,15 @@ static void amdgpu_vm_sdma_copy_ptes(struct amdgpu_vm_update_params *p, + struct amdgpu_bo *bo, uint64_t pe, + unsigned count) + { +- uint64_t src = p->ib->gpu_addr; ++ struct amdgpu_ib *ib = p->job->ibs; ++ uint64_t src = ib->gpu_addr; + + src += p->num_dw_left * 4; + + pe += amdgpu_bo_gpu_offset(bo); + trace_amdgpu_vm_copy_ptes(pe, src, count); + +- amdgpu_vm_copy_pte(p->adev, p->ib, pe, src, count); ++ amdgpu_vm_copy_pte(p->adev, ib, pe, src, count); + } + + /** +@@ -164,13 +165,15 @@ static void amdgpu_vm_sdma_set_ptes(struct amdgpu_vm_update_params *p, + uint64_t addr, unsigned count, + uint32_t incr, uint64_t flags) + { ++ struct amdgpu_ib *ib = p->job->ibs; ++ + pe += amdgpu_bo_gpu_offset(bo); + trace_amdgpu_vm_set_ptes(pe, addr, count, incr, flags); + if (count < 3) { +- amdgpu_vm_write_pte(p->adev, p->ib, pe, addr | flags, ++ amdgpu_vm_write_pte(p->adev, ib, pe, addr | flags, + count, incr); + } else { +- amdgpu_vm_set_pte_pde(p->adev, p->ib, pe, addr, ++ amdgpu_vm_set_pte_pde(p->adev, ib, pe, addr, + count, incr, flags); + } + } +@@ -200,7 +203,7 @@ static int amdgpu_vm_sdma_update(struct amdgpu_vm_update_params *p, + + do { + ndw = p->num_dw_left; +- ndw -= p->ib->length_dw; ++ ndw -= p->job->ibs->length_dw; + + if (ndw < 32) { + r = amdgpu_vm_sdma_commit(p, NULL); +@@ -219,7 +222,6 @@ static int amdgpu_vm_sdma_update(struct amdgpu_vm_update_params *p, + return r; + + p->num_dw_left = ndw; +- p->ib = &p->job->ibs[0]; + } + + if (!p->pages_addr) { +@@ -243,7 +245,7 @@ static int amdgpu_vm_sdma_update(struct amdgpu_vm_update_params *p, + + /* Put the PTEs at the end of the IB. */ + p->num_dw_left -= nptes * 2; +- pte = (uint64_t *)&(p->ib->ptr[p->num_dw_left]); ++ pte = (uint64_t *)&(p->job->ibs->ptr[p->num_dw_left]); + for (i = 0; i < nptes; ++i, addr += incr) { + pte[i] = amdgpu_vm_map_gart(p->pages_addr, addr); + pte[i] |= flags; +-- +2.17.1 + |