From: Boyuan Zhang <boyuan.zh...@amd.com>

For sienna_cichlid, set vcn enable or disable by the given instance
instead of setting it for all vcn instances.

Signed-off-by: Boyuan Zhang <boyuan.zh...@amd.com>
---
 .../amd/pm/swsmu/smu11/sienna_cichlid_ppt.c   | 24 ++++++++-----------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
index 3b29cb74c47b..8ecf49ae489c 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
@@ -1152,22 +1152,18 @@ static int sienna_cichlid_set_default_dpm_table(struct 
smu_context *smu)
        return 0;
 }
 
-static int sienna_cichlid_dpm_set_vcn_enable(struct smu_context *smu, bool 
enable)
+static int sienna_cichlid_dpm_set_vcn_enable_instance(struct smu_context *smu, 
bool enable, int inst)
 {
        struct amdgpu_device *adev = smu->adev;
-       int i, ret = 0;
+       int ret = 0;
 
-       for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
-               if (adev->vcn.harvest_config & (1 << i))
-                       continue;
-               /* vcn dpm on is a prerequisite for vcn power gate messages */
-               if (smu_cmn_feature_is_enabled(smu, SMU_FEATURE_MM_DPM_PG_BIT)) 
{
-                       ret = smu_cmn_send_smc_msg_with_param(smu, enable ?
-                                                             
SMU_MSG_PowerUpVcn : SMU_MSG_PowerDownVcn,
-                                                             0x10000 * i, 
NULL);
-                       if (ret)
-                               return ret;
-               }
+       if (adev->vcn.harvest_config & (1 << inst))
+               return ret;
+       /* vcn dpm on is a prerequisite for vcn power gate messages */
+       if (smu_cmn_feature_is_enabled(smu, SMU_FEATURE_MM_DPM_PG_BIT)) {
+               ret = smu_cmn_send_smc_msg_with_param(smu, enable ?
+                                            SMU_MSG_PowerUpVcn : 
SMU_MSG_PowerDownVcn,
+                                            0x10000 * inst, NULL);
        }
 
        return ret;
@@ -3106,7 +3102,7 @@ static int sienna_cichlid_mode2_reset(struct smu_context 
*smu)
 static const struct pptable_funcs sienna_cichlid_ppt_funcs = {
        .get_allowed_feature_mask = sienna_cichlid_get_allowed_feature_mask,
        .set_default_dpm_table = sienna_cichlid_set_default_dpm_table,
-       .dpm_set_vcn_enable = sienna_cichlid_dpm_set_vcn_enable,
+       .dpm_set_vcn_enable_instance = 
sienna_cichlid_dpm_set_vcn_enable_instance,
        .dpm_set_jpeg_enable = sienna_cichlid_dpm_set_jpeg_enable,
        .i2c_init = sienna_cichlid_i2c_control_init,
        .i2c_fini = sienna_cichlid_i2c_control_fini,
-- 
2.34.1

Reply via email to