aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-03-15 09:52:26 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-03-16 17:59:12 -0400
commite6151a08bbb3c85cd0b23813432690939e143131 (patch)
tree26f58e9030f2d31d635d27ce981ec835933c84d1 /drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
parent189e0fb763045aecc39c43100cd489c8756f3413 (diff)
drm/amdgpu: add number of hardware submissions to amdgpu_fence_driver_init_ring
Make this a parameter instead of using the global variable directly. Signed-off-by: Christian König <christian.koenig@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index ec73ab1c177d..4654113ecfae 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -355,15 +355,21 @@ int amdgpu_fence_driver_start_ring(struct amdgpu_ring *ring,
355 * for the requested ring. 355 * for the requested ring.
356 * 356 *
357 * @ring: ring to init the fence driver on 357 * @ring: ring to init the fence driver on
358 * @num_hw_submission: number of entries on the hardware queue
358 * 359 *
359 * Init the fence driver for the requested ring (all asics). 360 * Init the fence driver for the requested ring (all asics).
360 * Helper function for amdgpu_fence_driver_init(). 361 * Helper function for amdgpu_fence_driver_init().
361 */ 362 */
362int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring) 363int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring,
364 unsigned num_hw_submission)
363{ 365{
364 long timeout; 366 long timeout;
365 int r; 367 int r;
366 368
369 /* Check that num_hw_submission is a power of two */
370 if ((num_hw_submission & (num_hw_submission - 1)) != 0)
371 return -EINVAL;
372
367 ring->fence_drv.cpu_addr = NULL; 373 ring->fence_drv.cpu_addr = NULL;
368 ring->fence_drv.gpu_addr = 0; 374 ring->fence_drv.gpu_addr = 0;
369 ring->fence_drv.sync_seq = 0; 375 ring->fence_drv.sync_seq = 0;
@@ -387,7 +393,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring)
387 timeout = MAX_SCHEDULE_TIMEOUT; 393 timeout = MAX_SCHEDULE_TIMEOUT;
388 } 394 }
389 r = amd_sched_init(&ring->sched, &amdgpu_sched_ops, 395 r = amd_sched_init(&ring->sched, &amdgpu_sched_ops,
390 amdgpu_sched_hw_submission, 396 num_hw_submission,
391 timeout, ring->name); 397 timeout, ring->name);
392 if (r) { 398 if (r) {
393 DRM_ERROR("Failed to create scheduler on ring %s.\n", 399 DRM_ERROR("Failed to create scheduler on ring %s.\n",