mirror of
https://github.com/torvalds/linux.git
synced 2024-11-08 13:11:45 +00:00
drm/radeon: sync PT updates as shared v2
Only invalidating PTEs needs to be executed synchronized to using the PT. v2: fix sync to uses Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
43ac885764
commit
d1968e1db8
@ -820,7 +820,7 @@ static void radeon_vm_update_ptes(struct radeon_device *rdev,
|
||||
unsigned nptes;
|
||||
uint64_t pte;
|
||||
|
||||
radeon_sync_resv(rdev, &ib->sync, pt->tbo.resv, false);
|
||||
radeon_sync_resv(rdev, &ib->sync, pt->tbo.resv, true);
|
||||
|
||||
if ((addr & ~mask) == (end & ~mask))
|
||||
nptes = end - addr;
|
||||
@ -980,6 +980,13 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
|
||||
return r;
|
||||
ib.length_dw = 0;
|
||||
|
||||
if (!(bo_va->flags & RADEON_VM_PAGE_VALID)) {
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i < RADEON_NUM_RINGS; ++i)
|
||||
radeon_sync_fence(&ib.sync, vm->ids[i].last_id_use);
|
||||
}
|
||||
|
||||
radeon_vm_update_ptes(rdev, vm, &ib, bo_va->it.start,
|
||||
bo_va->it.last + 1, addr,
|
||||
radeon_vm_page_flags(bo_va->flags));
|
||||
|
Loading…
Reference in New Issue
Block a user