diff options
author | Chunming Zhou <david1.zhou@amd.com> | 2015-08-24 11:35:26 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-08-25 10:52:18 -0400 |
commit | f38fdfddfaab070e3ff2333a79e45169ee33dc28 (patch) | |
tree | 8988ba27abf8551083067d487b8b04ddfd8ff2f6 /drivers | |
parent | 84f76ea6b03a766931e5d6d650af5ab980c6c4f4 (diff) | |
download | talos-obmc-linux-f38fdfddfaab070e3ff2333a79e45169ee33dc28.tar.gz talos-obmc-linux-f38fdfddfaab070e3ff2333a79e45169ee33dc28.zip |
drm/amdgpu: add priv data to sched
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Christian K?nig <christian.koenig@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c index e13e4452a349..9787337a65a1 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c @@ -628,7 +628,8 @@ void amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring) if (amdgpu_enable_scheduler) { ring->scheduler = amd_sched_create(&amdgpu_sched_ops, ring->idx, - amdgpu_sched_hw_submission); + amdgpu_sched_hw_submission, + (void *)ring->adev); if (!ring->scheduler) DRM_ERROR("Failed to create scheduler on ring %d.\n", ring->idx); diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c index 24593fd29150..2df6f174ba7b 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c @@ -341,7 +341,8 @@ static int amd_sched_main(void *param) * Return the pointer to scheduler for success, otherwise return NULL */ struct amd_gpu_scheduler *amd_sched_create(struct amd_sched_backend_ops *ops, - unsigned ring, unsigned hw_submission) + unsigned ring, unsigned hw_submission, + void *priv) { struct amd_gpu_scheduler *sched; @@ -352,6 +353,7 @@ struct amd_gpu_scheduler *amd_sched_create(struct amd_sched_backend_ops *ops, sched->ops = ops; sched->ring_id = ring; sched->hw_submission_limit = hw_submission; + sched->priv = priv; snprintf(sched->name, sizeof(sched->name), "amdgpu[%d]", ring); amd_sched_rq_init(&sched->sched_rq); amd_sched_rq_init(&sched->kernel_rq); diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h index 0927864af1f8..44909b16c3a3 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h @@ -112,11 +112,12 @@ struct amd_gpu_scheduler { wait_queue_head_t wait_queue; uint32_t hw_submission_limit; char name[20]; + void *priv; }; struct amd_gpu_scheduler * amd_sched_create(struct amd_sched_backend_ops *ops, - uint32_t ring, uint32_t hw_submission); + uint32_t ring, uint32_t hw_submission, void *priv); int amd_sched_destroy(struct amd_gpu_scheduler *sched); int amd_sched_entity_init(struct amd_gpu_scheduler *sched, |