aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorJunwei Zhang <Jerry.Zhang@amd.com>2015-09-08 21:21:19 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-09-23 17:23:36 -0400
commita6db8a33e164ae72fb5429ab637e8cfee057a722 (patch)
tree364add4fa33036b3de4242f0139b998c757c7733 /drivers/gpu/drm/amd/amdgpu
parent4c7eb91cae88fd2aa101750d6825b4176f85ffb2 (diff)
drm/amdgpu: refine the scheduler job type conversion
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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c6
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 58fe9fab8192..dbe061bf88cc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1277,6 +1277,8 @@ struct amdgpu_job {
1277 struct amdgpu_user_fence uf; 1277 struct amdgpu_user_fence uf;
1278 int (*free_job)(struct amdgpu_job *job); 1278 int (*free_job)(struct amdgpu_job *job);
1279}; 1279};
1280#define to_amdgpu_job(sched_job) \
1281 container_of((sched_job), struct amdgpu_job, base)
1280 1282
1281static inline u32 amdgpu_get_ib_value(struct amdgpu_cs_parser *p, uint32_t ib_idx, int idx) 1283static inline u32 amdgpu_get_ib_value(struct amdgpu_cs_parser *p, uint32_t ib_idx, int idx)
1282{ 1284{
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 4c1698861c42..546968a83b08 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)
863 863
864 job->free_job = amdgpu_cs_free_job; 864 job->free_job = amdgpu_cs_free_job;
865 mutex_lock(&job->job_lock); 865 mutex_lock(&job->job_lock);
866 r = amd_sched_entity_push_job((struct amd_sched_job *)job); 866 r = amd_sched_entity_push_job(&job->base);
867 if (r) { 867 if (r) {
868 mutex_unlock(&job->job_lock); 868 mutex_unlock(&job->job_lock);
869 amdgpu_cs_free_job(job); 869 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 af1a3dabd190..58408da122c5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
@@ -29,7 +29,7 @@
29 29
30static struct fence *amdgpu_sched_dependency(struct amd_sched_job *sched_job) 30static struct fence *amdgpu_sched_dependency(struct amd_sched_job *sched_job)
31{ 31{
32 struct amdgpu_job *job = (struct amdgpu_job *)sched_job; 32 struct amdgpu_job *job = to_amdgpu_job(sched_job);
33 return amdgpu_sync_get_fence(&job->ibs->sync); 33 return amdgpu_sync_get_fence(&job->ibs->sync);
34} 34}
35 35
@@ -43,7 +43,7 @@ static struct fence *amdgpu_sched_run_job(struct amd_sched_job *sched_job)
43 DRM_ERROR("job is null\n"); 43 DRM_ERROR("job is null\n");
44 return NULL; 44 return NULL;
45 } 45 }
46 job = (struct amdgpu_job *)sched_job; 46 job = to_amdgpu_job(sched_job);
47 mutex_lock(&job->job_lock); 47 mutex_lock(&job->job_lock);
48 r = amdgpu_ib_schedule(job->adev, 48 r = amdgpu_ib_schedule(job->adev,
49 job->num_ibs, 49 job->num_ibs,
@@ -94,7 +94,7 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev,
94 mutex_init(&job->job_lock); 94 mutex_init(&job->job_lock);
95 job->free_job = free_job; 95 job->free_job = free_job;
96 mutex_lock(&job->job_lock); 96 mutex_lock(&job->job_lock);
97 r = amd_sched_entity_push_job((struct amd_sched_job *)job); 97 r = amd_sched_entity_push_job(&job->base);
98 if (r) { 98 if (r) {
99 mutex_unlock(&job->job_lock); 99 mutex_unlock(&job->job_lock);
100 kfree(job); 100 kfree(job);