drm/radeon/kms: reorganize copy callbacks
tidy up the radeon_asic struct, handle multiple rings better. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König<christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:

committed by
Dave Airlie

parent
293f9fd53a
commit
27cd77694b
@@ -43,17 +43,19 @@ static int radeon_benchmark_do_move(struct radeon_device *rdev, unsigned size,
|
||||
|
||||
start_jiffies = jiffies;
|
||||
for (i = 0; i < n; i++) {
|
||||
r = radeon_fence_create(rdev, &fence, RADEON_RING_TYPE_GFX_INDEX);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
switch (flag) {
|
||||
case RADEON_BENCHMARK_COPY_DMA:
|
||||
r = radeon_fence_create(rdev, &fence, radeon_copy_dma_ring_index(rdev));
|
||||
if (r)
|
||||
return r;
|
||||
r = radeon_copy_dma(rdev, saddr, daddr,
|
||||
size / RADEON_GPU_PAGE_SIZE,
|
||||
fence);
|
||||
break;
|
||||
case RADEON_BENCHMARK_COPY_BLIT:
|
||||
r = radeon_fence_create(rdev, &fence, radeon_copy_blit_ring_index(rdev));
|
||||
if (r)
|
||||
return r;
|
||||
r = radeon_copy_blit(rdev, saddr, daddr,
|
||||
size / RADEON_GPU_PAGE_SIZE,
|
||||
fence);
|
||||
@@ -129,7 +131,7 @@ static void radeon_benchmark_move(struct radeon_device *rdev, unsigned size,
|
||||
/* r100 doesn't have dma engine so skip the test */
|
||||
/* also, VRAM-to-VRAM test doesn't make much sense for DMA */
|
||||
/* skip it as well if domains are the same */
|
||||
if ((rdev->asic->copy_dma) && (sdomain != ddomain)) {
|
||||
if ((rdev->asic->copy.dma) && (sdomain != ddomain)) {
|
||||
time = radeon_benchmark_do_move(rdev, size, saddr, daddr,
|
||||
RADEON_BENCHMARK_COPY_DMA, n);
|
||||
if (time < 0)
|
||||
|
Reference in New Issue
Block a user