diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_object.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_object.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index d3024883b844..84d45633d28c 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c | |||
@@ -221,11 +221,17 @@ int radeon_bo_create(struct radeon_device *rdev, | |||
221 | if (!(rdev->flags & RADEON_IS_PCIE)) | 221 | if (!(rdev->flags & RADEON_IS_PCIE)) |
222 | bo->flags &= ~(RADEON_GEM_GTT_WC | RADEON_GEM_GTT_UC); | 222 | bo->flags &= ~(RADEON_GEM_GTT_WC | RADEON_GEM_GTT_UC); |
223 | 223 | ||
224 | /* Write-combined CPU mappings of GTT cause GPU hangs with RV6xx | ||
225 | * See https://bugs.freedesktop.org/show_bug.cgi?id=91268 | ||
226 | */ | ||
227 | if (rdev->family >= CHIP_RV610 && rdev->family <= CHIP_RV635) | ||
228 | bo->flags &= ~(RADEON_GEM_GTT_WC | RADEON_GEM_GTT_UC); | ||
229 | |||
224 | #ifdef CONFIG_X86_32 | 230 | #ifdef CONFIG_X86_32 |
225 | /* XXX: Write-combined CPU mappings of GTT seem broken on 32-bit | 231 | /* XXX: Write-combined CPU mappings of GTT seem broken on 32-bit |
226 | * See https://bugs.freedesktop.org/show_bug.cgi?id=84627 | 232 | * See https://bugs.freedesktop.org/show_bug.cgi?id=84627 |
227 | */ | 233 | */ |
228 | bo->flags &= ~RADEON_GEM_GTT_WC; | 234 | bo->flags &= ~(RADEON_GEM_GTT_WC | RADEON_GEM_GTT_UC); |
229 | #elif defined(CONFIG_X86) && !defined(CONFIG_X86_PAT) | 235 | #elif defined(CONFIG_X86) && !defined(CONFIG_X86_PAT) |
230 | /* Don't try to enable write-combining when it can't work, or things | 236 | /* Don't try to enable write-combining when it can't work, or things |
231 | * may be slow | 237 | * may be slow |
@@ -235,9 +241,10 @@ int radeon_bo_create(struct radeon_device *rdev, | |||
235 | #warning Please enable CONFIG_MTRR and CONFIG_X86_PAT for better performance \ | 241 | #warning Please enable CONFIG_MTRR and CONFIG_X86_PAT for better performance \ |
236 | thanks to write-combining | 242 | thanks to write-combining |
237 | 243 | ||
238 | DRM_INFO_ONCE("Please enable CONFIG_MTRR and CONFIG_X86_PAT for " | 244 | if (bo->flags & RADEON_GEM_GTT_WC) |
239 | "better performance thanks to write-combining\n"); | 245 | DRM_INFO_ONCE("Please enable CONFIG_MTRR and CONFIG_X86_PAT for " |
240 | bo->flags &= ~RADEON_GEM_GTT_WC; | 246 | "better performance thanks to write-combining\n"); |
247 | bo->flags &= ~(RADEON_GEM_GTT_WC | RADEON_GEM_GTT_UC); | ||
241 | #endif | 248 | #endif |
242 | 249 | ||
243 | radeon_ttm_placement_from_domain(bo, domain); | 250 | radeon_ttm_placement_from_domain(bo, domain); |