diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c index 5e424e3b6e71..4e37de79f031 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c @@ -278,7 +278,7 @@ static int amdgpu_vmid_grab_idle(struct amdgpu_ring *ring, { struct amdgpu_device *adev = ring->adev; unsigned vmhub = ring->vm_hub; - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; /* If anybody is waiting for a VMID let everybody wait for fairness */ if (!dma_fence_is_signaled(ring->vmid_wait)) { @@ -393,7 +393,7 @@ static int amdgpu_vmid_grab_used(struct amdgpu_vm *vm, { struct amdgpu_device *adev = ring->adev; unsigned vmhub = ring->vm_hub; - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; uint64_t fence_context = adev->fence_context + ring->idx; uint64_t updates = amdgpu_vm_tlb_seq(vm); int r; @@ -454,7 +454,7 @@ int amdgpu_vmid_grab(struct amdgpu_vm *vm, struct amdgpu_ring *ring, { struct amdgpu_device *adev = ring->adev; unsigned vmhub = ring->vm_hub; - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; struct amdgpu_vmid *idle = NULL; struct amdgpu_vmid *id = NULL; int r = 0; @@ -540,7 +540,7 @@ bool amdgpu_vmid_uses_reserved(struct amdgpu_vm *vm, unsigned int vmhub) int amdgpu_vmid_alloc_reserved(struct amdgpu_device *adev, struct amdgpu_vm *vm, unsigned vmhub) { - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; struct amdgpu_vmid *id; int r = 0; @@ -573,7 +573,7 @@ unlock: void amdgpu_vmid_free_reserved(struct amdgpu_device *adev, struct amdgpu_vm *vm, unsigned vmhub) { - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; mutex_lock(&id_mgr->lock); if (vm->reserved_vmid[vmhub]) { @@ -597,7 +597,7 @@ void amdgpu_vmid_free_reserved(struct amdgpu_device *adev, struct amdgpu_vm *vm, void amdgpu_vmid_reset(struct amdgpu_device *adev, unsigned vmhub, unsigned vmid) { - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; struct amdgpu_vmid *id = &id_mgr->ids[vmid]; mutex_lock(&id_mgr->lock); @@ -623,7 +623,7 @@ void amdgpu_vmid_reset_all(struct amdgpu_device *adev) unsigned i, j; for (i = 0; i < AMDGPU_MAX_VMHUBS; ++i) { - struct amdgpu_vmid_mgr *id_mgr = + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[i]; for_each_set_bit(j, id_mgr->vmid_mask, AMDGPU_NUM_VMID) amdgpu_vmid_reset(adev, i, j); @@ -658,7 +658,7 @@ void amdgpu_vmid_mgr_init(struct amdgpu_device *adev) unsigned i, j; for (i = 0; i < AMDGPU_MAX_VMHUBS; ++i) { - struct amdgpu_vmid_mgr *id_mgr = + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[i]; mutex_init(&id_mgr->lock); @@ -685,7 +685,7 @@ void amdgpu_vmid_mgr_fini(struct amdgpu_device *adev) unsigned i, j; for (i = 0; i < AMDGPU_MAX_VMHUBS; ++i) { - struct amdgpu_vmid_mgr *id_mgr = + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[i]; mutex_destroy(&id_mgr->lock); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h index 46b2c2160126..21d6a41d1738 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h @@ -42,10 +42,10 @@ * @adev: struct amdgpu_device * * @hub: vmhub index into adev->vm_manager.id_mgr[] * - * Equivalent to OR-ing BIT(0) into id_mgr[hub].vmid_mask and walking the - * result with for_each_set_bit(). Used by the gfx_v*_constants_init() paths - * which must always touch VMID 0 (system) in addition to the regular VMIDs - * owned by the hub. + * Equivalent to OR-ing BIT(0) into id_mgr[hub].vmid_mask and walking + * the result with for_each_set_bit(). Used by the gfx_v*_constants_init() + * paths which must always touch VMID 0 (system) in addition to the regular + * VMIDs owned by the hub. * * Relies on AMDGPU_NUM_VMID (16) fitting in a single unsigned long, i.e. * vmid_mask[] being a 1-element bitmap. @@ -86,7 +86,7 @@ struct amdgpu_vmid { struct dma_fence *pasid_mapping; }; -struct amdgpu_vmid_mgr { +struct amdgpu_kq_vmid_mgr { struct mutex lock; struct list_head ids_lru; struct amdgpu_vmid ids[AMDGPU_NUM_VMID]; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index f6a07e08a05b..2bd07007def4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -743,7 +743,7 @@ bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring, { struct amdgpu_device *adev = ring->adev; unsigned vmhub = ring->vm_hub; - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; if (job->vmid == 0) return false; @@ -780,7 +780,7 @@ void amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, &adev->isolation[ring->xcp_id == AMDGPU_XCP_NO_PARTITION ? 0 : ring->xcp_id]; unsigned vmhub = ring->vm_hub; - struct amdgpu_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; + struct amdgpu_kq_vmid_mgr *id_mgr = &adev->vm_manager.id_mgr[vmhub]; struct amdgpu_vmid *id = &id_mgr->ids[job->vmid]; bool spm_update_needed = adev->gfx.rlc.funcs->update_spm_vmid && job->spm_update_needed; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h index a0edabaf720e..8e478d3bda1a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h @@ -382,7 +382,7 @@ struct amdgpu_vm { struct amdgpu_vm_manager { /* Handling of VMIDs */ - struct amdgpu_vmid_mgr id_mgr[AMDGPU_MAX_VMHUBS]; + struct amdgpu_kq_vmid_mgr id_mgr[AMDGPU_MAX_VMHUBS]; unsigned int first_kfd_vmid; bool concurrent_flush;