Move the PPT limit restore out of smu_set_ac_dc. Keep smu_set_ac_dc only
for switching the power source. Drop the restore ppt limit policy
parameter and add the restore logic to ac/dc notification path.

Signed-off-by: Lijo Lazar <[email protected]>
---
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c 
b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 84ac824837ac..bcb74bb2bd60 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -960,7 +960,7 @@ static int smu_late_init(struct amdgpu_ip_block *ip_block)
         * is unnecessary.
         */
        adev->pm.ac_power = power_supply_is_system_supplied() > 0;
-       smu_set_ac_dc(smu, false);
+       smu_set_ac_dc(smu);
 
        if ((amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(13, 0, 1)) ||
            (amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(13, 0, 3)))
@@ -2774,7 +2774,7 @@ static int smu_set_watermarks_for_clock_ranges(void 
*handle,
        return smu_set_watermarks_table(smu, clock_ranges);
 }
 
-static int smu_set_ac_dc(struct smu_context *smu, bool restore_ppt_policy)
+static int smu_set_ac_dc(struct smu_context *smu)
 {
        int ret = 0;
 
@@ -2794,9 +2794,6 @@ static int smu_set_ac_dc(struct smu_context *smu, bool 
restore_ppt_policy)
                }
        }
 
-       if (restore_ppt_policy)
-               smu_restore_ppt_limits(smu, true);
-
        return 0;
 }
 
@@ -2804,7 +2801,10 @@ static void smu_notify_ac_dc(void *handle)
 {
        struct smu_context *smu = handle;
 
-       smu_set_ac_dc(smu, true);
+       if (smu_set_ac_dc(smu))
+               return;
+
+       smu_restore_ppt_limits(smu, true);
 }
 
 const struct amd_ip_funcs smu_ip_funcs = {
-- 
2.49.0

Reply via email to