diff options
author | Christian König <christian.koenig@amd.com> | 2016-03-15 09:52:26 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-03-16 17:59:12 -0400 |
commit | e6151a08bbb3c85cd0b23813432690939e143131 (patch) | |
tree | 26f58e9030f2d31d635d27ce981ec835933c84d1 /drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | |
parent | 189e0fb763045aecc39c43100cd489c8756f3413 (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.c | 10 |
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 | */ |
362 | int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring) | 363 | int 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", |