On Wed, Jan 2, 2013 at 5:38 PM, Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx> wrote: > On 2013.01.02 at 17:31 -0500, Jerome Glisse wrote: >> Please affected people can you test if patch : >> http://people.freedesktop.org/~glisse/0003-drm-radeon-fix-dma-copy-on-r6xx-r7xx-evergen-ni-si-g.patch >> >> Fix the issue, you need to make sure you don't have the patch that >> disable dma on r6xx ie that line 977-978 & 1061-1062 in radeon_asic.c >> is : >> .copy = &r600_copy_dma, >> .copy_ring_index = R600_RING_TYPE_DMA_INDEX, > > It fixes the issue for me. Thanks. The count is actually the count, not count - 1. The real fix seems to be that r6xx requires 2 dw aligned transfers. The attached patch fixes the issue for me. Alex > > -- > Markus
From 47996fe2cc4ee82ac9db514fca36df889172cf30 Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Wed, 2 Jan 2013 18:30:21 -0500 Subject: [PATCH] drm/radeon/r6xx: fix DMA engine for ttm bo transfers count must be a multiple of 2. Cc: Borislav Petkov <bp@xxxxxxxxx> Cc: Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> --- drivers/gpu/drm/radeon/r600.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 2aaf147..9f4ce5e 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -2636,8 +2636,8 @@ int r600_copy_dma(struct radeon_device *rdev, for (i = 0; i < num_loops; i++) { cur_size_in_dw = size_in_dw; - if (cur_size_in_dw > 0xFFFF) - cur_size_in_dw = 0xFFFF; + if (cur_size_in_dw > 0xFFFE) + cur_size_in_dw = 0xFFFE; size_in_dw -= cur_size_in_dw; radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_COPY, 0, 0, cur_size_in_dw)); radeon_ring_write(ring, dst_offset & 0xfffffffc); -- 1.7.7.5
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel