aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0548-drm-amdgpu-refine-the-scheduler-job-type-conversion.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0548-drm-amdgpu-refine-the-scheduler-job-type-conversion.patch')
-rw-r--r--meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0548-drm-amdgpu-refine-the-scheduler-job-type-conversion.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0548-drm-amdgpu-refine-the-scheduler-job-type-conversion.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0548-drm-amdgpu-refine-the-scheduler-job-type-conversion.patch
new file mode 100644
index 00000000..4cf3bbdf
--- /dev/null
+++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0548-drm-amdgpu-refine-the-scheduler-job-type-conversion.patch
@@ -0,0 +1,80 @@
+From a6db8a33e164ae72fb5429ab637e8cfee057a722 Mon Sep 17 00:00:00 2001
+From: Junwei Zhang <Jerry.Zhang@amd.com>
+Date: Wed, 9 Sep 2015 09:21:19 +0800
+Subject: [PATCH 0548/1050] drm/amdgpu: refine the scheduler job type
+ conversion
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use container_of rather than casting.
+
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: David Zhou <david1.zhou@amd.com>
+Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 6 +++---
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index 58fe9fa..dbe061b 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -1277,6 +1277,8 @@ struct amdgpu_job {
+ struct amdgpu_user_fence uf;
+ int (*free_job)(struct amdgpu_job *job);
+ };
++#define to_amdgpu_job(sched_job) \
++ container_of((sched_job), struct amdgpu_job, base)
+
+ static inline u32 amdgpu_get_ib_value(struct amdgpu_cs_parser *p, uint32_t ib_idx, int idx)
+ {
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 4c16988..546968a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -863,7 +863,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+
+ job->free_job = amdgpu_cs_free_job;
+ mutex_lock(&job->job_lock);
+- r = amd_sched_entity_push_job((struct amd_sched_job *)job);
++ r = amd_sched_entity_push_job(&job->base);
+ if (r) {
+ mutex_unlock(&job->job_lock);
+ amdgpu_cs_free_job(job);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+index af1a3da..58408da 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+@@ -29,7 +29,7 @@
+
+ static struct fence *amdgpu_sched_dependency(struct amd_sched_job *sched_job)
+ {
+- struct amdgpu_job *job = (struct amdgpu_job *)sched_job;
++ struct amdgpu_job *job = to_amdgpu_job(sched_job);
+ return amdgpu_sync_get_fence(&job->ibs->sync);
+ }
+
+@@ -43,7 +43,7 @@ static struct fence *amdgpu_sched_run_job(struct amd_sched_job *sched_job)
+ DRM_ERROR("job is null\n");
+ return NULL;
+ }
+- job = (struct amdgpu_job *)sched_job;
++ job = to_amdgpu_job(sched_job);
+ mutex_lock(&job->job_lock);
+ r = amdgpu_ib_schedule(job->adev,
+ job->num_ibs,
+@@ -94,7 +94,7 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev,
+ mutex_init(&job->job_lock);
+ job->free_job = free_job;
+ mutex_lock(&job->job_lock);
+- r = amd_sched_entity_push_job((struct amd_sched_job *)job);
++ r = amd_sched_entity_push_job(&job->base);
+ if (r) {
+ mutex_unlock(&job->job_lock);
+ kfree(job);
+--
+1.9.1
+