aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2015-08-20 11:24:40 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-08-25 10:47:41 -0400
commit69f7dd652c08bffb267f418ded7b358e74783045 (patch)
tree0e83f5742709a98494a9ec89caa2ca03e2eb9fec /drivers/gpu/drm
parent1fca766b24d07e2daed1da0f224f5f395c73e32b (diff)
drm/amdgpu: remove unused parameters to amd_sched_create
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c5
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.c21
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.h12
3 files changed, 11 insertions, 27 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 9a87372c3c79..e13e4452a349 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -626,9 +626,8 @@ void amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring)
626 ring->fence_drv.ring = ring; 626 ring->fence_drv.ring = ring;
627 627
628 if (amdgpu_enable_scheduler) { 628 if (amdgpu_enable_scheduler) {
629 ring->scheduler = amd_sched_create((void *)ring->adev, 629 ring->scheduler = amd_sched_create(&amdgpu_sched_ops,
630 &amdgpu_sched_ops, 630 ring->idx,
631 ring->idx, 5, 0,
632 amdgpu_sched_hw_submission); 631 amdgpu_sched_hw_submission);
633 if (!ring->scheduler) 632 if (!ring->scheduler)
634 DRM_ERROR("Failed to create scheduler on ring %d.\n", 633 DRM_ERROR("Failed to create scheduler on ring %d.\n",
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index b13642f1e00b..acae85572399 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -325,20 +325,14 @@ static int amd_sched_main(void *param)
325/** 325/**
326 * Create a gpu scheduler 326 * Create a gpu scheduler
327 * 327 *
328 * @device The device context for this scheduler 328 * @ops The backend operations for this scheduler.
329 * @ops The backend operations for this scheduler. 329 * @ring The the ring id for the scheduler.
330 * @id The scheduler is per ring, here is ring id. 330 * @hw_submissions Number of hw submissions to do.
331 * @granularity The minumum ms unit the scheduler will scheduled.
332 * @preemption Indicate whether this ring support preemption, 0 is no.
333 * 331 *
334 * return the pointer to scheduler for success, otherwise return NULL 332 * Return the pointer to scheduler for success, otherwise return NULL
335*/ 333*/
336struct amd_gpu_scheduler *amd_sched_create(void *device, 334struct amd_gpu_scheduler *amd_sched_create(struct amd_sched_backend_ops *ops,
337 struct amd_sched_backend_ops *ops, 335 unsigned ring, unsigned hw_submission)
338 unsigned ring,
339 unsigned granularity,
340 unsigned preemption,
341 unsigned hw_submission)
342{ 336{
343 struct amd_gpu_scheduler *sched; 337 struct amd_gpu_scheduler *sched;
344 char name[20]; 338 char name[20];
@@ -347,11 +341,8 @@ struct amd_gpu_scheduler *amd_sched_create(void *device,
347 if (!sched) 341 if (!sched)
348 return NULL; 342 return NULL;
349 343
350 sched->device = device;
351 sched->ops = ops; 344 sched->ops = ops;
352 sched->granularity = granularity;
353 sched->ring_id = ring; 345 sched->ring_id = ring;
354 sched->preemption = preemption;
355 sched->hw_submission_limit = hw_submission; 346 sched->hw_submission_limit = hw_submission;
356 snprintf(name, sizeof(name), "gpu_sched[%d]", ring); 347 snprintf(name, sizeof(name), "gpu_sched[%d]", ring);
357 amd_sched_rq_init(&sched->sched_rq); 348 amd_sched_rq_init(&sched->sched_rq);
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
index 123b8f15d3fb..df365abaa125 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
@@ -104,25 +104,19 @@ struct amd_sched_backend_ops {
104 * One scheduler is implemented for each hardware ring 104 * One scheduler is implemented for each hardware ring
105*/ 105*/
106struct amd_gpu_scheduler { 106struct amd_gpu_scheduler {
107 void *device;
108 struct task_struct *thread; 107 struct task_struct *thread;
109 struct amd_sched_rq sched_rq; 108 struct amd_sched_rq sched_rq;
110 struct amd_sched_rq kernel_rq; 109 struct amd_sched_rq kernel_rq;
111 atomic_t hw_rq_count; 110 atomic_t hw_rq_count;
112 struct amd_sched_backend_ops *ops; 111 struct amd_sched_backend_ops *ops;
113 uint32_t ring_id; 112 uint32_t ring_id;
114 uint32_t granularity; /* in ms unit */
115 uint32_t preemption;
116 wait_queue_head_t wait_queue; 113 wait_queue_head_t wait_queue;
117 uint32_t hw_submission_limit; 114 uint32_t hw_submission_limit;
118}; 115};
119 116
120struct amd_gpu_scheduler *amd_sched_create(void *device, 117struct amd_gpu_scheduler *
121 struct amd_sched_backend_ops *ops, 118amd_sched_create(struct amd_sched_backend_ops *ops,
122 uint32_t ring, 119 uint32_t ring, uint32_t hw_submission);
123 uint32_t granularity,
124 uint32_t preemption,
125 uint32_t hw_submission);
126int amd_sched_destroy(struct amd_gpu_scheduler *sched); 120int amd_sched_destroy(struct amd_gpu_scheduler *sched);
127 121
128int amd_sched_push_job(struct amd_sched_job *sched_job); 122int amd_sched_push_job(struct amd_sched_job *sched_job);