diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/r600.c')
-rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 319e1ee1844a..cfc1d28ade39 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
@@ -3166,7 +3166,7 @@ int r600_copy_cpdma(struct radeon_device *rdev, | |||
3166 | 3166 | ||
3167 | size_in_bytes = (num_gpu_pages << RADEON_GPU_PAGE_SHIFT); | 3167 | size_in_bytes = (num_gpu_pages << RADEON_GPU_PAGE_SHIFT); |
3168 | num_loops = DIV_ROUND_UP(size_in_bytes, 0x1fffff); | 3168 | num_loops = DIV_ROUND_UP(size_in_bytes, 0x1fffff); |
3169 | r = radeon_ring_lock(rdev, ring, num_loops * 6 + 21); | 3169 | r = radeon_ring_lock(rdev, ring, num_loops * 6 + 24); |
3170 | if (r) { | 3170 | if (r) { |
3171 | DRM_ERROR("radeon: moving bo (%d).\n", r); | 3171 | DRM_ERROR("radeon: moving bo (%d).\n", r); |
3172 | radeon_semaphore_free(rdev, &sem, NULL); | 3172 | radeon_semaphore_free(rdev, &sem, NULL); |
@@ -3181,6 +3181,9 @@ int r600_copy_cpdma(struct radeon_device *rdev, | |||
3181 | radeon_semaphore_free(rdev, &sem, NULL); | 3181 | radeon_semaphore_free(rdev, &sem, NULL); |
3182 | } | 3182 | } |
3183 | 3183 | ||
3184 | radeon_ring_write(ring, PACKET3(PACKET3_SET_CONFIG_REG, 1)); | ||
3185 | radeon_ring_write(ring, (WAIT_UNTIL - PACKET3_SET_CONFIG_REG_OFFSET) >> 2); | ||
3186 | radeon_ring_write(ring, WAIT_3D_IDLE_bit); | ||
3184 | for (i = 0; i < num_loops; i++) { | 3187 | for (i = 0; i < num_loops; i++) { |
3185 | cur_size_in_bytes = size_in_bytes; | 3188 | cur_size_in_bytes = size_in_bytes; |
3186 | if (cur_size_in_bytes > 0x1fffff) | 3189 | if (cur_size_in_bytes > 0x1fffff) |