drm/radeon: make VM flushs a ring operation
Move flushing the VMs as function into the rings. First step to make VM operations async. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
This commit is contained in:

committed by
Alex Deucher

parent
f82cbddddb
commit
9b40e5d842
@@ -2796,24 +2796,9 @@ int si_vm_bind(struct radeon_device *rdev, struct radeon_vm *vm, int id)
|
||||
else
|
||||
WREG32(VM_CONTEXT8_PAGE_TABLE_BASE_ADDR + ((id - 8) << 2),
|
||||
vm->pt_gpu_addr >> 12);
|
||||
/* flush hdp cache */
|
||||
WREG32(HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1);
|
||||
/* bits 0-15 are the VM contexts0-15 */
|
||||
WREG32(VM_INVALIDATE_REQUEST, 1 << id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void si_vm_tlb_flush(struct radeon_device *rdev, struct radeon_vm *vm)
|
||||
{
|
||||
if (vm->id == -1)
|
||||
return;
|
||||
|
||||
/* flush hdp cache */
|
||||
WREG32(HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1);
|
||||
/* bits 0-15 are the VM contexts0-15 */
|
||||
WREG32(VM_INVALIDATE_REQUEST, 1 << vm->id);
|
||||
}
|
||||
|
||||
/*
|
||||
* RLC
|
||||
*/
|
||||
|
Reference in New Issue
Block a user