[Help][RS780E][mipsel]Screen corruption sometimes

Alex Deucher alexdeucher at gmail.com
Mon Sep 12 22:33:55 PDT 2011


2011/9/13 Chen Jie <chenj at lemote.com>:
> Hi,
>
> 2011/9/7 Michel Dänzer <michel at daenzer.net>
>>
>> What if you only comment out one of the invocations? Do you get
>> corruption in one case but not the other one?
> I got corruption in either case.
>
> We got a patch from the BSP team of the CPU vendor, which seems solved
> the problem.
>
> The patch replaces both RADEON_GPU_PAGE_SIZE  in function
> r600_copy_blit() with PAGE_SIZE. (We use 16K PAGE_SIZE, and
> RADEON_GPU_PAGE_SIZE is 4K)
>
> Any idea? If it had copy problems, why bo moving test couldn't detect
> it? Also, after applied the patch, the bo moving test was still
> passed, curious.

The patch is correct.   r600_copy_blit() takes CPU pages as a
parameter and the r600_blit_*_copy() functions take bytes as a
parameter.  evergreen_copy_blit() needs a similar fix.

>
> BTW, if the patch was correct, then it seems more suitable to be fixed
> in radeon_move_blit():
> * The num_pages field of ttm_mem_reg need to be changed if moved
> between VRAM and GTT && PAGE != RADEON_GPU_PAGE_SIZE.

There may be other places where we are using the wrong page size for
GPU vs CPU pages.

> * What is a drm_mm_node? Represent a block resides at VRAM/GTT/System Mem?
>

drm_mm is basically a set of helper functions for managing address ranges.

Alex


More information about the xorg-driver-ati mailing list