diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/cik.c')
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index 6dcde3798b45..64fdae558d36 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c | |||
@@ -6033,6 +6033,17 @@ void cik_vm_flush(struct radeon_device *rdev, struct radeon_ring *ring, | |||
6033 | radeon_ring_write(ring, 0); | 6033 | radeon_ring_write(ring, 0); |
6034 | radeon_ring_write(ring, 1 << vm_id); | 6034 | radeon_ring_write(ring, 1 << vm_id); |
6035 | 6035 | ||
6036 | /* wait for the invalidate to complete */ | ||
6037 | radeon_ring_write(ring, PACKET3(PACKET3_WAIT_REG_MEM, 5)); | ||
6038 | radeon_ring_write(ring, (WAIT_REG_MEM_OPERATION(0) | /* wait */ | ||
6039 | WAIT_REG_MEM_FUNCTION(0) | /* always */ | ||
6040 | WAIT_REG_MEM_ENGINE(0))); /* me */ | ||
6041 | radeon_ring_write(ring, VM_INVALIDATE_REQUEST >> 2); | ||
6042 | radeon_ring_write(ring, 0); | ||
6043 | radeon_ring_write(ring, 0); /* ref */ | ||
6044 | radeon_ring_write(ring, 0); /* mask */ | ||
6045 | radeon_ring_write(ring, 0x20); /* poll interval */ | ||
6046 | |||
6036 | /* compute doesn't have PFP */ | 6047 | /* compute doesn't have PFP */ |
6037 | if (usepfp) { | 6048 | if (usepfp) { |
6038 | /* sync PFP to ME, otherwise we might get invalid PFP reads */ | 6049 | /* sync PFP to ME, otherwise we might get invalid PFP reads */ |