[PATCH 3/6] drm/radeon: Writeback endian fixes

Michel Dänzer michel at daenzer.net
Thu Jul 14 08:19:24 PDT 2011


On Mit, 2011-07-13 at 16:28 +1000, Benjamin Herrenschmidt wrote:
> The writeback ring pointer and IH ring pointer are read using le32_to_cpu
> so we do not want the chip to byteswap them on big-endian.
> 
> We still want to byteswap the ring itself and the IBs, so we don't touch
> that but we remove setting of the byteswap bits in CP_RB_RPTR_ADDR and
> IH_CNTL.
> 
> In general, for things like that where we control all the accessors easily,
> we are better off doing the swap in SW rather than HW. Paradoxally, it does
> keep the code closer to x86 and avoid using poorly tested HW features.

Absolutely. Unfortunately, when I fixed the CP writeback code to use
le32_to_cpu(), I didn't realize the code for some GPU families was
already using HW swappers for this. 


> I also changed the use of RADEON_ to R600_ in a couple of cases to be more
> consistent with the surrounding code.

That should probably be in a separate patch. Either way, though:

Reviewed-by: Michel Dänzer <michel at daenzer.net>


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-driver-ati mailing list