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.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index 8c94040cb7f2..45d565bae71b 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2900,3 +2900,18 @@ int r600_debugfs_mc_info_init(struct radeon_device *rdev)
2900 return 0; 2900 return 0;
2901#endif 2901#endif
2902} 2902}
2903
2904/**
2905 * r600_ioctl_wait_idle - flush host path cache on wait idle ioctl
2906 * rdev: radeon device structure
2907 * bo: buffer object struct which userspace is waiting for idle
2908 *
2909 * Some R6XX/R7XX doesn't seems to take into account HDP flush performed
2910 * through ring buffer, this leads to corruption in rendering, see
2911 * http://bugzilla.kernel.org/show_bug.cgi?id=15186 to avoid this we
2912 * directly perform HDP flush by writing register through MMIO.
2913 */
2914void r600_ioctl_wait_idle(struct radeon_device *rdev, struct radeon_bo *bo)
2915{
2916 WREG32(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1);
2917}