|
@@ -40,10 +40,14 @@ void radeon_test_moves(struct radeon_device *rdev)
|
|
|
size = 1024 * 1024;
|
|
|
|
|
|
/* Number of tests =
|
|
|
- * (Total GTT - IB pool - writeback page - ring buffer) / test size
|
|
|
+ * (Total GTT - IB pool - writeback page - ring buffers) / test size
|
|
|
*/
|
|
|
- n = ((u32)(rdev->mc.gtt_size - RADEON_IB_POOL_SIZE*64*1024 - RADEON_GPU_PAGE_SIZE -
|
|
|
- rdev->cp.ring_size)) / size;
|
|
|
+ n = rdev->mc.gtt_size - RADEON_IB_POOL_SIZE*64*1024 - rdev->cp.ring_size;
|
|
|
+ if (rdev->wb.wb_obj)
|
|
|
+ n -= RADEON_GPU_PAGE_SIZE;
|
|
|
+ if (rdev->ih.ring_obj)
|
|
|
+ n -= rdev->ih.ring_size;
|
|
|
+ n /= size;
|
|
|
|
|
|
gtt_obj = kzalloc(n * sizeof(*gtt_obj), GFP_KERNEL);
|
|
|
if (!gtt_obj) {
|
|
@@ -132,9 +136,15 @@ void radeon_test_moves(struct radeon_device *rdev)
|
|
|
gtt_start++, vram_start++) {
|
|
|
if (*vram_start != gtt_start) {
|
|
|
DRM_ERROR("Incorrect GTT->VRAM copy %d: Got 0x%p, "
|
|
|
- "expected 0x%p (GTT map 0x%p-0x%p)\n",
|
|
|
- i, *vram_start, gtt_start, gtt_map,
|
|
|
- gtt_end);
|
|
|
+ "expected 0x%p (GTT/VRAM offset "
|
|
|
+ "0x%16llx/0x%16llx)\n",
|
|
|
+ i, *vram_start, gtt_start,
|
|
|
+ (unsigned long long)
|
|
|
+ (gtt_addr - rdev->mc.gtt_start +
|
|
|
+ (void*)gtt_start - gtt_map),
|
|
|
+ (unsigned long long)
|
|
|
+ (vram_addr - rdev->mc.vram_start +
|
|
|
+ (void*)gtt_start - gtt_map));
|
|
|
radeon_bo_kunmap(vram_obj);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
@@ -175,9 +185,15 @@ void radeon_test_moves(struct radeon_device *rdev)
|
|
|
gtt_start++, vram_start++) {
|
|
|
if (*gtt_start != vram_start) {
|
|
|
DRM_ERROR("Incorrect VRAM->GTT copy %d: Got 0x%p, "
|
|
|
- "expected 0x%p (VRAM map 0x%p-0x%p)\n",
|
|
|
- i, *gtt_start, vram_start, vram_map,
|
|
|
- vram_end);
|
|
|
+ "expected 0x%p (VRAM/GTT offset "
|
|
|
+ "0x%16llx/0x%16llx)\n",
|
|
|
+ i, *gtt_start, vram_start,
|
|
|
+ (unsigned long long)
|
|
|
+ (vram_addr - rdev->mc.vram_start +
|
|
|
+ (void*)vram_start - vram_map),
|
|
|
+ (unsigned long long)
|
|
|
+ (gtt_addr - rdev->mc.gtt_start +
|
|
|
+ (void*)vram_start - vram_map));
|
|
|
radeon_bo_kunmap(gtt_obj[i]);
|
|
|
goto out_cleanup;
|
|
|
}
|