aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/r600.c')
-rw-r--r--drivers/gpu/drm/radeon/r600.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index a322d4f647bd..4d7a2e1bdb90 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -878,12 +878,15 @@ void r600_pcie_gart_tlb_flush(struct radeon_device *rdev)
878 u32 tmp; 878 u32 tmp;
879 879
880 /* flush hdp cache so updates hit vram */ 880 /* flush hdp cache so updates hit vram */
881 if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740)) { 881 if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740) &&
882 !(rdev->flags & RADEON_IS_AGP)) {
882 void __iomem *ptr = (void *)rdev->gart.table.vram.ptr; 883 void __iomem *ptr = (void *)rdev->gart.table.vram.ptr;
883 u32 tmp; 884 u32 tmp;
884 885
885 /* r7xx hw bug. write to HDP_DEBUG1 followed by fb read 886 /* r7xx hw bug. write to HDP_DEBUG1 followed by fb read
886 * rather than write to HDP_REG_COHERENCY_FLUSH_CNTL 887 * rather than write to HDP_REG_COHERENCY_FLUSH_CNTL
888 * This seems to cause problems on some AGP cards. Just use the old
889 * method for them.
887 */ 890 */
888 WREG32(HDP_DEBUG1, 0); 891 WREG32(HDP_DEBUG1, 0);
889 tmp = readl((void __iomem *)ptr); 892 tmp = readl((void __iomem *)ptr);
@@ -3485,10 +3488,12 @@ int r600_debugfs_mc_info_init(struct radeon_device *rdev)
3485void r600_ioctl_wait_idle(struct radeon_device *rdev, struct radeon_bo *bo) 3488void r600_ioctl_wait_idle(struct radeon_device *rdev, struct radeon_bo *bo)
3486{ 3489{
3487 /* r7xx hw bug. write to HDP_DEBUG1 followed by fb read 3490 /* r7xx hw bug. write to HDP_DEBUG1 followed by fb read
3488 * rather than write to HDP_REG_COHERENCY_FLUSH_CNTL 3491 * rather than write to HDP_REG_COHERENCY_FLUSH_CNTL.
3492 * This seems to cause problems on some AGP cards. Just use the old
3493 * method for them.
3489 */ 3494 */
3490 if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740) && 3495 if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740) &&
3491 rdev->vram_scratch.ptr) { 3496 rdev->vram_scratch.ptr && !(rdev->flags & RADEON_IS_AGP)) {
3492 void __iomem *ptr = (void *)rdev->vram_scratch.ptr; 3497 void __iomem *ptr = (void *)rdev->vram_scratch.ptr;
3493 u32 tmp; 3498 u32 tmp;
3494 3499