aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4964-drm-amdgpu-remove-ring-parameter-from-amdgpu_job_sub.patch
diff options
context:
space:
mode:
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.patch206
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
+