[PATCH] drm/radeon: flush HDP in DMA ring test v2

Christian König deathsimple at vodafone.de
Fri Oct 10 07:58:43 PDT 2014


From: Christian König <christian.koenig at amd.com>

v1: Flush VRAM cache before each read when polling (r600_dma_ring_test only).
v2 (chk): rebased on current drm-fixes, apply to CIK as well.

Signed-off-by: Alexander Fyodorov <halcy at yandex.ru>
Signed-off-by: Christian König <christian.koenig at amd.com>
---
 drivers/gpu/drm/radeon/cik_sdma.c | 1 +
 drivers/gpu/drm/radeon/r600_dma.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/radeon/cik_sdma.c b/drivers/gpu/drm/radeon/cik_sdma.c
index c4ffa54..4c442a6 100644
--- a/drivers/gpu/drm/radeon/cik_sdma.c
+++ b/drivers/gpu/drm/radeon/cik_sdma.c
@@ -631,6 +631,7 @@ int cik_sdma_ring_test(struct radeon_device *rdev,
 	radeon_ring_write(ring, upper_32_bits(rdev->vram_scratch.gpu_addr));
 	radeon_ring_write(ring, 1); /* number of DWs to follow */
 	radeon_ring_write(ring, 0xDEADBEEF);
+	cik_sdma_hdp_flush_ring_emit(rdev, ring->idx);
 	radeon_ring_unlock_commit(rdev, ring, false);
 
 	for (i = 0; i < rdev->usec_timeout; i++) {
diff --git a/drivers/gpu/drm/radeon/r600_dma.c b/drivers/gpu/drm/radeon/r600_dma.c
index a908daa..cef647a 100644
--- a/drivers/gpu/drm/radeon/r600_dma.c
+++ b/drivers/gpu/drm/radeon/r600_dma.c
@@ -255,6 +255,7 @@ int r600_dma_ring_test(struct radeon_device *rdev,
 	radeon_ring_unlock_commit(rdev, ring, false);
 
 	for (i = 0; i < rdev->usec_timeout; i++) {
+		r600_mmio_hdp_flush(rdev);
 		tmp = readl(ptr);
 		if (tmp == 0xDEADBEEF)
 			break;
-- 
1.9.1



More information about the dri-devel mailing list