summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
diff options
context:
space:
mode:
authorSunil Khatri <sunil.khatri@amd.com>2024-10-01 11:35:14 +0530
committerAlex Deucher <alexander.deucher@amd.com>2024-10-07 14:03:25 -0400
commit58608034ed5090b7a4b7f1c040a67a53fe1dbbc6 (patch)
treecc79f96dae5b0c9ffaddc27c9b1f73f892e07023 /drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
parent7feb4f3ad8befa0850a576adaa32d57962bf82e5 (diff)
downloadlinux-58608034ed5090b7a4b7f1c040a67a53fe1dbbc6.tar.gz
linux-58608034ed5090b7a4b7f1c040a67a53fe1dbbc6.tar.bz2
linux-58608034ed5090b7a4b7f1c040a67a53fe1dbbc6.zip
drm/amdgpu: update the handle ptr in hw_init
Update the *handle to amdgpu_ip_block ptr for all functions pointers of hw_init. Also update the ip_block ptr where ever needed as there were cyclic dependency of hw_init on resume. v2: squash in isp fix Signed-off-by: Sunil Khatri <sunil.khatri@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c')
-rw-r--r--drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 033965ed8645..246eba201ff6 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -1787,10 +1787,10 @@ static int smu_start_smc_engine(struct smu_context *smu)
return ret;
}
-static int smu_hw_init(void *handle)
+static int smu_hw_init(struct amdgpu_ip_block *ip_block)
{
int ret;
- struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+ struct amdgpu_device *adev = ip_block->adev;
struct smu_context *smu = adev->powerplay.pp_handle;
if (amdgpu_sriov_vf(adev) && !amdgpu_sriov_is_pp_one_vf(adev)) {
@@ -2056,18 +2056,18 @@ static int smu_reset(struct smu_context *smu)
struct amdgpu_ip_block *ip_block;
int ret;
+ ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_SMC);
+ if (!ip_block)
+ return -EINVAL;
+
ret = smu_hw_fini(adev);
if (ret)
return ret;
- ret = smu_hw_init(adev);
+ ret = smu_hw_init(ip_block);
if (ret)
return ret;
- ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_SMC);
- if (!ip_block)
- return -EINVAL;
-
ret = smu_late_init(ip_block);
if (ret)
return ret;