[PATCH 90/95] drm/amdgpu: Add hw_fini for ualink
Alex Deucher <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
From: Lijo Lazar <[email protected]> Deactivate accelerator from vpod during hw_fini sequence. Signed-off-by: Lijo Lazar <[email protected]> Reviewed-by: Hawking Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c | 13 +++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.h | 1 + drivers/gpu/drm/amd/amdgpu/ualink_v1_0.c | 1 + 3 files changed, 15 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c index 58f16a5cae9e6..0baa8c07077d5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c @@ -424,6 +424,19 @@ int ualink_ip_hw_init(struct amdgpu_ip_block *ip_block) return 0; } +int ualink_ip_hw_fini(struct amdgpu_ip_block *ip_block) +{ + struct amdgpu_device *adev = ip_block->adev; + + if (adev->ualink.mgr_state != AMDGPU_UALINK_INIT_COMPLETE) + return 0; + + scoped_guard(mutex, &mgpu_info.mutex) + deactivate_accelerator(adev); + + return 0; +} + int ualink_ip_late_init(struct amdgpu_ip_block *ip_block) { struct amdgpu_device *adev = ip_block->adev; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.h index 22f5a48bf661d..2e579d0bbe9e6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.h @@ -409,6 +409,7 @@ int amdgpu_ualink_import_handle(struct drm_device *dev, void amdgpu_ualink_revoke_exported_memory(struct amdgpu_bo *bo); int ualink_ip_hw_init(struct amdgpu_ip_block *ip_block); +int ualink_ip_hw_fini(struct amdgpu_ip_block *ip_block); int ualink_ip_late_init(struct amdgpu_ip_block *ip_block); int ualink_ip_sw_init(struct amdgpu_ip_block *ip_block); int ualink_ip_sw_fini(struct amdgpu_ip_block *ip_block); diff --git a/drivers/gpu/drm/amd/amdgpu/ualink_v1_0.c b/drivers/gpu/drm/amd/amdgpu/ualink_v1_0.c index 58cf98ac94add..d440ed6b57336 100644 --- a/drivers/gpu/drm/amd/amdgpu/ualink_v1_0.c +++ b/drivers/gpu/drm/amd/amdgpu/ualink_v1_0.c @@ -131,6 +131,7 @@ static const struct amd_ip_funcs ualink_v1_0_ip_funcs = { .sw_init = ualink_v1_0_sw_init, .sw_fini = ualink_ip_sw_fini, .hw_init = ualink_ip_hw_init, + .hw_fini = ualink_ip_hw_fini, }; const struct amdgpu_ip_block_version ualink_v1_0_ip_block = { -- 2.55.0