drm/radeon: Use write-combined CPU mappings of ring buffers with PCIe
authorMichel Dänzer <michel.daenzer@amd.com>
Tue, 29 Jul 2014 09:47:20 +0000 (18:47 +0900)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 5 Aug 2014 12:53:40 +0000 (08:53 -0400)
PCI GART doesn't support unsnooped access. AGP GART already uses
write-combined CPU mappings.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_ring.c

index 71439f0a3c26c54df27660e78061213cbab8f018..7cfea7e4583fc1f92e6c548a447e4e3486675473 100644 (file)
@@ -640,7 +640,9 @@ int radeon_ring_init(struct radeon_device *rdev, struct radeon_ring *ring, unsig
        /* Allocate ring buffer */
        if (ring->ring_obj == NULL) {
                r = radeon_bo_create(rdev, ring->ring_size, PAGE_SIZE, true,
-                                    RADEON_GEM_DOMAIN_GTT, 0,
+                                    RADEON_GEM_DOMAIN_GTT,
+                                    (rdev->flags & RADEON_IS_PCIE) ?
+                                    RADEON_GEM_GTT_WC : 0,
                                     NULL, &ring->ring_obj);
                if (r) {
                        dev_err(rdev->dev, "(%d) ring create failed\n", r);