diff options
author | Chunming Zhou <david1.zhou@amd.com> | 2018-06-15 02:39:57 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-06-19 14:17:39 -0400 |
commit | 8e2c7ad99dce3f4242fa0d0d5950ca3ba0f212c3 (patch) | |
tree | 0d13b63485ad3299bfe41faae995cecac530d002 /drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | |
parent | eeb2c3c2a614f003cd42cc3d96d23f5c29ff6727 (diff) |
drm/amdgpu: update ib_start/size_alignment same as windows used
PAGE_SIZE for start_alignment is far much than hw requirement,
And now, update to expereince value from window side.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c index ec1060a5eab3..2060f208e60b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | |||
@@ -329,35 +329,35 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file | |||
329 | type = AMD_IP_BLOCK_TYPE_GFX; | 329 | type = AMD_IP_BLOCK_TYPE_GFX; |
330 | for (i = 0; i < adev->gfx.num_gfx_rings; i++) | 330 | for (i = 0; i < adev->gfx.num_gfx_rings; i++) |
331 | ring_mask |= ((adev->gfx.gfx_ring[i].ready ? 1 : 0) << i); | 331 | ring_mask |= ((adev->gfx.gfx_ring[i].ready ? 1 : 0) << i); |
332 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 332 | ib_start_alignment = 32; |
333 | ib_size_alignment = 8; | 333 | ib_size_alignment = 32; |
334 | break; | 334 | break; |
335 | case AMDGPU_HW_IP_COMPUTE: | 335 | case AMDGPU_HW_IP_COMPUTE: |
336 | type = AMD_IP_BLOCK_TYPE_GFX; | 336 | type = AMD_IP_BLOCK_TYPE_GFX; |
337 | for (i = 0; i < adev->gfx.num_compute_rings; i++) | 337 | for (i = 0; i < adev->gfx.num_compute_rings; i++) |
338 | ring_mask |= ((adev->gfx.compute_ring[i].ready ? 1 : 0) << i); | 338 | ring_mask |= ((adev->gfx.compute_ring[i].ready ? 1 : 0) << i); |
339 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 339 | ib_start_alignment = 32; |
340 | ib_size_alignment = 8; | 340 | ib_size_alignment = 32; |
341 | break; | 341 | break; |
342 | case AMDGPU_HW_IP_DMA: | 342 | case AMDGPU_HW_IP_DMA: |
343 | type = AMD_IP_BLOCK_TYPE_SDMA; | 343 | type = AMD_IP_BLOCK_TYPE_SDMA; |
344 | for (i = 0; i < adev->sdma.num_instances; i++) | 344 | for (i = 0; i < adev->sdma.num_instances; i++) |
345 | ring_mask |= ((adev->sdma.instance[i].ring.ready ? 1 : 0) << i); | 345 | ring_mask |= ((adev->sdma.instance[i].ring.ready ? 1 : 0) << i); |
346 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 346 | ib_start_alignment = 256; |
347 | ib_size_alignment = 1; | 347 | ib_size_alignment = 4; |
348 | break; | 348 | break; |
349 | case AMDGPU_HW_IP_UVD: | 349 | case AMDGPU_HW_IP_UVD: |
350 | type = AMD_IP_BLOCK_TYPE_UVD; | 350 | type = AMD_IP_BLOCK_TYPE_UVD; |
351 | for (i = 0; i < adev->uvd.num_uvd_inst; i++) | 351 | for (i = 0; i < adev->uvd.num_uvd_inst; i++) |
352 | ring_mask |= ((adev->uvd.inst[i].ring.ready ? 1 : 0) << i); | 352 | ring_mask |= ((adev->uvd.inst[i].ring.ready ? 1 : 0) << i); |
353 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 353 | ib_start_alignment = 64; |
354 | ib_size_alignment = 16; | 354 | ib_size_alignment = 64; |
355 | break; | 355 | break; |
356 | case AMDGPU_HW_IP_VCE: | 356 | case AMDGPU_HW_IP_VCE: |
357 | type = AMD_IP_BLOCK_TYPE_VCE; | 357 | type = AMD_IP_BLOCK_TYPE_VCE; |
358 | for (i = 0; i < adev->vce.num_rings; i++) | 358 | for (i = 0; i < adev->vce.num_rings; i++) |
359 | ring_mask |= ((adev->vce.ring[i].ready ? 1 : 0) << i); | 359 | ring_mask |= ((adev->vce.ring[i].ready ? 1 : 0) << i); |
360 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 360 | ib_start_alignment = 4; |
361 | ib_size_alignment = 1; | 361 | ib_size_alignment = 1; |
362 | break; | 362 | break; |
363 | case AMDGPU_HW_IP_UVD_ENC: | 363 | case AMDGPU_HW_IP_UVD_ENC: |
@@ -367,26 +367,26 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file | |||
367 | ring_mask |= | 367 | ring_mask |= |
368 | ((adev->uvd.inst[i].ring_enc[j].ready ? 1 : 0) << | 368 | ((adev->uvd.inst[i].ring_enc[j].ready ? 1 : 0) << |
369 | (j + i * adev->uvd.num_enc_rings)); | 369 | (j + i * adev->uvd.num_enc_rings)); |
370 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 370 | ib_start_alignment = 64; |
371 | ib_size_alignment = 1; | 371 | ib_size_alignment = 64; |
372 | break; | 372 | break; |
373 | case AMDGPU_HW_IP_VCN_DEC: | 373 | case AMDGPU_HW_IP_VCN_DEC: |
374 | type = AMD_IP_BLOCK_TYPE_VCN; | 374 | type = AMD_IP_BLOCK_TYPE_VCN; |
375 | ring_mask = adev->vcn.ring_dec.ready ? 1 : 0; | 375 | ring_mask = adev->vcn.ring_dec.ready ? 1 : 0; |
376 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 376 | ib_start_alignment = 16; |
377 | ib_size_alignment = 16; | 377 | ib_size_alignment = 16; |
378 | break; | 378 | break; |
379 | case AMDGPU_HW_IP_VCN_ENC: | 379 | case AMDGPU_HW_IP_VCN_ENC: |
380 | type = AMD_IP_BLOCK_TYPE_VCN; | 380 | type = AMD_IP_BLOCK_TYPE_VCN; |
381 | for (i = 0; i < adev->vcn.num_enc_rings; i++) | 381 | for (i = 0; i < adev->vcn.num_enc_rings; i++) |
382 | ring_mask |= ((adev->vcn.ring_enc[i].ready ? 1 : 0) << i); | 382 | ring_mask |= ((adev->vcn.ring_enc[i].ready ? 1 : 0) << i); |
383 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 383 | ib_start_alignment = 64; |
384 | ib_size_alignment = 1; | 384 | ib_size_alignment = 1; |
385 | break; | 385 | break; |
386 | case AMDGPU_HW_IP_VCN_JPEG: | 386 | case AMDGPU_HW_IP_VCN_JPEG: |
387 | type = AMD_IP_BLOCK_TYPE_VCN; | 387 | type = AMD_IP_BLOCK_TYPE_VCN; |
388 | ring_mask = adev->vcn.ring_jpeg.ready ? 1 : 0; | 388 | ring_mask = adev->vcn.ring_jpeg.ready ? 1 : 0; |
389 | ib_start_alignment = AMDGPU_GPU_PAGE_SIZE; | 389 | ib_start_alignment = 16; |
390 | ib_size_alignment = 16; | 390 | ib_size_alignment = 16; |
391 | break; | 391 | break; |
392 | default: | 392 | default: |