On Thu, 2011-07-14 at 17:19 +0200, Michel Dänzer wrote:
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:
I thought about it and decided it was trivial enough not to bother re-doing the patches.
Alex/Dave/whoever's in charge, feel free to apply the current batch, I'll send further cleanups/fixes as separate patches, possibly not before next week or so.
Cheers, Ben.
Reviewed-by: Michel Dänzer michel@daenzer.net