aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-06-22 08:25:55 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-07-07 15:02:00 -0400
commit9a79588c42bf89cff48fdc6db4aab4aeb9d862b6 (patch)
tree844b1a3d8bbca198d6077e0e158776d09aa490a3 /drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
parentd5b4e25d8358ed65559dcbe1709cc46e755c22f6 (diff)
drm/amdgpu: don't update page tables for VM emulation
It's just overhead to do so and allocating a VMID when we don't need one is actually a bit dangerous. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index cf97a87f76a6..95b248159947 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -656,20 +656,21 @@ static int amdgpu_cs_ib_vm_chunk(struct amdgpu_device *adev,
656 656
657 /* Only for UVD/VCE VM emulation */ 657 /* Only for UVD/VCE VM emulation */
658 if (ring->funcs->parse_cs) { 658 if (ring->funcs->parse_cs) {
659 p->job->vm = NULL;
659 for (i = 0; i < p->job->num_ibs; i++) { 660 for (i = 0; i < p->job->num_ibs; i++) {
660 r = amdgpu_ring_parse_cs(ring, p, i); 661 r = amdgpu_ring_parse_cs(ring, p, i);
661 if (r) 662 if (r)
662 return r; 663 return r;
663 } 664 }
664 } 665 } else {
665 666 p->job->vm_pd_addr = amdgpu_bo_gpu_offset(vm->page_directory);
666 p->job->vm_pd_addr = amdgpu_bo_gpu_offset(vm->page_directory);
667 667
668 r = amdgpu_bo_vm_update_pte(p, vm); 668 r = amdgpu_bo_vm_update_pte(p, vm);
669 if (!r) 669 if (r)
670 amdgpu_cs_sync_rings(p); 670 return r;
671 }
671 672
672 return r; 673 return amdgpu_cs_sync_rings(p);
673} 674}
674 675
675static int amdgpu_cs_handle_lockup(struct amdgpu_device *adev, int r) 676static int amdgpu_cs_handle_lockup(struct amdgpu_device *adev, int r)