drm/radeon/kms: don't swap PCIEGART PTEs in VRAM.
authorDave Airlie <airlied@redhat.com>
Thu, 9 Jul 2009 23:33:00 +0000 (09:33 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 15 Jul 2009 07:13:16 +0000 (17:13 +1000)
On powerpc, since we aren't using any hw swappers, this will
get flipped around by default in hw.

tested on a G5 + rv515.

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r300.c

index 656d9238bb0625dbfdd125c0ad1c40c0b25f6c12..6435d659cbd13d1f86117d44f02e90f36874b996 100644 (file)
@@ -154,7 +154,10 @@ int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr)
        addr = (lower_32_bits(addr) >> 8) |
               ((upper_32_bits(addr) & 0xff) << 24) |
               0xc;
-       writel(cpu_to_le32(addr), ((void __iomem *)ptr) + (i * 4));
+       /* on x86 we want this to be CPU endian, on powerpc
+        * on powerpc without HW swappers, it'll get swapped on way
+        * into VRAM - so no need for cpu_to_le32 on VRAM tables */
+       writel(addr, ((void __iomem *)ptr) + (i * 4));
        return 0;
 }