aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_benchmark.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_benchmark.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_benchmark.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_benchmark.c b/drivers/gpu/drm/radeon/radeon_benchmark.c
index 69f5695bdab9..1e8855060fc7 100644
--- a/drivers/gpu/drm/radeon/radeon_benchmark.c
+++ b/drivers/gpu/drm/radeon/radeon_benchmark.c
@@ -45,33 +45,29 @@ static int radeon_benchmark_do_move(struct radeon_device *rdev, unsigned size,
45 for (i = 0; i < n; i++) { 45 for (i = 0; i < n; i++) {
46 switch (flag) { 46 switch (flag) {
47 case RADEON_BENCHMARK_COPY_DMA: 47 case RADEON_BENCHMARK_COPY_DMA:
48 r = radeon_copy_dma(rdev, saddr, daddr, 48 fence = radeon_copy_dma(rdev, saddr, daddr,
49 size / RADEON_GPU_PAGE_SIZE, 49 size / RADEON_GPU_PAGE_SIZE,
50 &fence); 50 NULL);
51 break; 51 break;
52 case RADEON_BENCHMARK_COPY_BLIT: 52 case RADEON_BENCHMARK_COPY_BLIT:
53 r = radeon_copy_blit(rdev, saddr, daddr, 53 fence = radeon_copy_blit(rdev, saddr, daddr,
54 size / RADEON_GPU_PAGE_SIZE, 54 size / RADEON_GPU_PAGE_SIZE,
55 &fence); 55 NULL);
56 break; 56 break;
57 default: 57 default:
58 DRM_ERROR("Unknown copy method\n"); 58 DRM_ERROR("Unknown copy method\n");
59 r = -EINVAL; 59 return -EINVAL;
60 } 60 }
61 if (r) 61 if (IS_ERR(fence))
62 goto exit_do_move; 62 return PTR_ERR(fence);
63
63 r = radeon_fence_wait(fence, false); 64 r = radeon_fence_wait(fence, false);
64 if (r)
65 goto exit_do_move;
66 radeon_fence_unref(&fence); 65 radeon_fence_unref(&fence);
66 if (r)
67 return r;
67 } 68 }
68 end_jiffies = jiffies; 69 end_jiffies = jiffies;
69 r = jiffies_to_msecs(end_jiffies - start_jiffies); 70 return jiffies_to_msecs(end_jiffies - start_jiffies);
70
71exit_do_move:
72 if (fence)
73 radeon_fence_unref(&fence);
74 return r;
75} 71}
76 72
77 73