aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index b5bdd5d59b58..db14a7bbb8f4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -75,6 +75,7 @@ int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm,
75 } 75 }
76 76
77 ib->vm = vm; 77 ib->vm = vm;
78 ib->vm_id = 0;
78 79
79 return 0; 80 return 0;
80} 81}
@@ -139,7 +140,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
139 return -EINVAL; 140 return -EINVAL;
140 } 141 }
141 142
142 if (vm && !ibs->grabbed_vmid) { 143 if (vm && !ibs->vm_id) {
143 dev_err(adev->dev, "VM IB without ID\n"); 144 dev_err(adev->dev, "VM IB without ID\n");
144 return -EINVAL; 145 return -EINVAL;
145 } 146 }
@@ -152,10 +153,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
152 153
153 if (vm) { 154 if (vm) {
154 /* do context switch */ 155 /* do context switch */
155 amdgpu_vm_flush(ring, vm, last_vm_update); 156 amdgpu_vm_flush(ring, ib->vm_id, ib->vm_pd_addr);
156 157
157 if (ring->funcs->emit_gds_switch) 158 if (ring->funcs->emit_gds_switch)
158 amdgpu_ring_emit_gds_switch(ring, ib->vm->ids[ring->idx].id, 159 amdgpu_ring_emit_gds_switch(ring, ib->vm_id,
159 ib->gds_base, ib->gds_size, 160 ib->gds_base, ib->gds_size,
160 ib->gws_base, ib->gws_size, 161 ib->gws_base, ib->gws_size,
161 ib->oa_base, ib->oa_size); 162 ib->oa_base, ib->oa_size);