diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4964-drm-amdgpu-remove-ring-parameter-from-amdgpu_job_sub.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4964-drm-amdgpu-remove-ring-parameter-from-amdgpu_job_sub.patch | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4964-drm-amdgpu-remove-ring-parameter-from-amdgpu_job_sub.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4964-drm-amdgpu-remove-ring-parameter-from-amdgpu_job_sub.patch new file mode 100644 index 00000000..e2cab3ee --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4964-drm-amdgpu-remove-ring-parameter-from-amdgpu_job_sub.patch @@ -0,0 +1,206 @@ +From b77ae8d1f37e165da8f7ff71b8877aaff4b6ff9e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Fri, 13 Jul 2018 13:54:56 +0200 +Subject: [PATCH 4964/5725] drm/amdgpu: remove ring parameter from + amdgpu_job_submit +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We know the ring through the entity anyway. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> +Acked-by: Chunming Zhou <david1.zhou@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 9 ++++----- + drivers/gpu/drm/amd/amdgpu/amdgpu_job.h | 5 ++--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 2 ++ + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 6 +++--- + drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 11 +++++------ + drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 2 +- + drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 2 +- + 9 files changed, 20 insertions(+), 21 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +index bf45b1a..4dd5aac 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +@@ -117,21 +117,20 @@ void amdgpu_job_free(struct amdgpu_job *job) + kfree(job); + } + +-int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring, +- struct drm_sched_entity *entity, void *owner, +- struct dma_fence **f) ++int amdgpu_job_submit(struct amdgpu_job *job, struct drm_sched_entity *entity, ++ void *owner, struct dma_fence **f) + { + int r; +- job->ring = ring; + + if (!f) + return -EINVAL; + +- r = drm_sched_job_init(&job->base, &ring->sched, entity, owner); ++ r = drm_sched_job_init(&job->base, entity->sched, entity, owner); + if (r) + return r; + + job->owner = owner; ++ job->ring = to_amdgpu_ring(entity->sched); + *f = dma_fence_get(&job->base.s_fence->finished); + amdgpu_job_free_resources(job); + amdgpu_ring_priority_get(job->ring, job->base.s_priority); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.h +index 3151692..39f4230 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.h +@@ -67,7 +67,6 @@ int amdgpu_job_alloc_with_ib(struct amdgpu_device *adev, unsigned size, + + void amdgpu_job_free_resources(struct amdgpu_job *job); + void amdgpu_job_free(struct amdgpu_job *job); +-int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring, +- struct drm_sched_entity *entity, void *owner, +- struct dma_fence **f); ++int amdgpu_job_submit(struct amdgpu_job *job, struct drm_sched_entity *entity, ++ void *owner, struct dma_fence **f); + #endif +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h +index 1c7ffc1..380eb2c 100755 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h +@@ -43,6 +43,8 @@ + #define AMDGPU_FENCE_FLAG_INT (1 << 1) + #define AMDGPU_FENCE_FLAG_TC_WB_ONLY (1 << 2) + ++#define to_amdgpu_ring(s) container_of((s), struct amdgpu_ring, sched) ++ + enum amdgpu_ring_type { + AMDGPU_RING_TYPE_GFX, + AMDGPU_RING_TYPE_COMPUTE, +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +index cf7f380..8bf244e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +@@ -2204,7 +2204,7 @@ static int amdgpu_map_buffer(struct ttm_buffer_object *bo, + if (r) + goto error_free; + +- r = amdgpu_job_submit(job, ring, &adev->mman.entity, ++ r = amdgpu_job_submit(job, &adev->mman.entity, + AMDGPU_FENCE_OWNER_UNDEFINED, &fence); + if (r) + goto error_free; +@@ -2281,7 +2281,7 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset, + DRM_ERROR("Error scheduling IBs (%d)\n", r); + amdgpu_job_free(job); + } else { +- r = amdgpu_job_submit(job, ring, &adev->mman.entity, ++ r = amdgpu_job_submit(job, &adev->mman.entity, + AMDGPU_FENCE_OWNER_UNDEFINED, fence); + if (r) + goto error_free; +@@ -2373,7 +2373,7 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo, + + amdgpu_ring_pad_ib(ring, &job->ibs[0]); + WARN_ON(job->ibs[0].length_dw > num_dw); +- r = amdgpu_job_submit(job, ring, &adev->mman.entity, ++ r = amdgpu_job_submit(job, &adev->mman.entity, + AMDGPU_FENCE_OWNER_UNDEFINED, fence); + if (r) + goto error_free; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +index 1db0845..5ee3151 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +@@ -1075,7 +1075,7 @@ static int amdgpu_uvd_send_msg(struct amdgpu_ring *ring, struct amdgpu_bo *bo, + if (r) + goto err_free; + +- r = amdgpu_job_submit(job, ring, &adev->uvd.inst[ring->me].entity, ++ r = amdgpu_job_submit(job, &adev->uvd.inst[ring->me].entity, + AMDGPU_FENCE_OWNER_UNDEFINED, &f); + if (r) + goto err_free; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +index b2a4cdb..27853b2 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +@@ -541,7 +541,7 @@ int amdgpu_vce_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle, + + amdgpu_job_free(job); + } else { +- r = amdgpu_job_submit(job, ring, &ring->adev->vce.entity, ++ r = amdgpu_job_submit(job, &ring->adev->vce.entity, + AMDGPU_FENCE_OWNER_UNDEFINED, &f); + if (r) + goto err; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +index 8b5dada..b8e9262 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +@@ -412,8 +412,8 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev, + if (r) + goto error_free; + +- r = amdgpu_job_submit(job, ring, &vm->entity, +- AMDGPU_FENCE_OWNER_UNDEFINED, &fence); ++ r = amdgpu_job_submit(job, &vm->entity, AMDGPU_FENCE_OWNER_UNDEFINED, ++ &fence); + if (r) + goto error_free; + +@@ -1108,8 +1108,8 @@ int amdgpu_vm_update_directories(struct amdgpu_device *adev, + amdgpu_sync_resv(adev, &job->sync, root->tbo.resv, + AMDGPU_FENCE_OWNER_VM, false); + WARN_ON(params.ib->length_dw > ndw); +- r = amdgpu_job_submit(job, ring, &vm->entity, +- AMDGPU_FENCE_OWNER_VM, &fence); ++ r = amdgpu_job_submit(job, &vm->entity, AMDGPU_FENCE_OWNER_VM, ++ &fence); + if (r) + goto error; + +@@ -1473,8 +1473,7 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev, + + amdgpu_ring_pad_ib(ring, params.ib); + WARN_ON(params.ib->length_dw > ndw); +- r = amdgpu_job_submit(job, ring, &vm->entity, +- AMDGPU_FENCE_OWNER_VM, &f); ++ r = amdgpu_job_submit(job, &vm->entity, AMDGPU_FENCE_OWNER_VM, &f); + if (r) + goto error_free; + +diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c +index bca9c63..068fe13 100644 +--- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c +@@ -320,7 +320,7 @@ static int uvd_v6_0_enc_get_destroy_msg(struct amdgpu_ring *ring, + + amdgpu_job_free(job); + } else { +- r = amdgpu_job_submit(job, ring, &ring->adev->vce.entity, ++ r = amdgpu_job_submit(job, &ring->adev->vce.entity, + AMDGPU_FENCE_OWNER_UNDEFINED, &f); + if (r) + goto err; +diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c +index 07f5ccb..c6365b0 100644 +--- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c +@@ -321,7 +321,7 @@ int uvd_v7_0_enc_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle, + + amdgpu_job_free(job); + } else { +- r = amdgpu_job_submit(job, ring, &ring->adev->vce.entity, ++ r = amdgpu_job_submit(job, &ring->adev->vce.entity, + AMDGPU_FENCE_OWNER_UNDEFINED, &f); + if (r) + goto err; +-- +2.7.4 + |