diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 7 |
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); |