From: Evan Quan Date: Thu, 4 Jun 2020 04:00:11 +0000 (+0800) Subject: drm/amd/powerplay: maximize code sharing between .hw_fini and .suspend X-Git-Tag: v5.10.7~1861^2~25^2~179 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e6f1eb4cbf53269cdab8dd4ae1ad2bba384e6ca6;p=platform%2Fkernel%2Flinux-rpi.git drm/amd/powerplay: maximize code sharing between .hw_fini and .suspend Thus redundant code can be dropped. Signed-off-by: Evan Quan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c index 71bc4df..359d1f5 100644 --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c @@ -1376,6 +1376,26 @@ static int smu_disable_dpms(struct smu_context *smu) return ret; } +static int smu_smc_hw_cleanup(struct smu_context *smu) +{ + struct amdgpu_device *adev = smu->adev; + int ret = 0; + + smu_i2c_eeprom_fini(smu, &adev->pm.smu_i2c); + + ret = smu_disable_thermal_alert(smu); + if (ret) { + pr_warn("Fail to stop thermal control!\n"); + return ret; + } + + ret = smu_disable_dpms(smu); + if (ret) + return ret; + + return 0; +} + static int smu_hw_fini(void *handle) { struct amdgpu_device *adev = (struct amdgpu_device *)handle; @@ -1396,19 +1416,9 @@ static int smu_hw_fini(void *handle) adev->pm.dpm_enabled = false; - smu_i2c_eeprom_fini(smu, &adev->pm.smu_i2c); - - ret = smu_disable_thermal_alert(smu); - if (ret) { - pr_warn("Fail to stop thermal control!\n"); - return ret; - } - - ret = smu_disable_dpms(smu); - if (ret) { - pr_warn("Fail to stop Dpms!\n"); + ret = smu_smc_hw_cleanup(smu); + if (ret) return ret; - } return 0; } @@ -1445,15 +1455,7 @@ static int smu_suspend(void *handle) adev->pm.dpm_enabled = false; - smu_i2c_eeprom_fini(smu, &adev->pm.smu_i2c); - - ret = smu_disable_thermal_alert(smu); - if (ret) { - pr_warn("Fail to stop thermal control!\n"); - return ret; - } - - ret = smu_disable_dpms(smu); + ret = smu_smc_hw_cleanup(smu); if (ret) return ret;