Use multi args for get_enabled_mask to fix is_dpm_running

Signed-off-by: Pratik Vishwakarma <[email protected]>
---
 .../drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c  | 35 +++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c
index 2987ff1b13e4..f90d274c0f67 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c
@@ -479,12 +479,43 @@ static int smu_v15_0_0_read_sensor(struct smu_context 
*smu,
        return ret;
 }
 
+static int smu_v15_0_0_get_enabled_mask(struct smu_context *smu,
+                                       struct smu_feature_bits *feature_mask)
+{
+       uint32_t *feature_mask_high;
+       uint32_t *feature_mask_low;
+       int ret = 0;
+       struct smu_msg_ctl *ctl = &smu->msg_ctl;
+
+       if (!feature_mask)
+               return -EINVAL;
+
+       feature_mask_low = &((uint32_t *)feature_mask)[0];
+       feature_mask_high = &((uint32_t *)feature_mask)[1];
+
+       struct smu_msg_args args = {
+               .msg = SMU_MSG_GetEnabledSmuFeatures,
+               .num_args = 0,
+               .num_out_args = 2,
+       };
+
+       ret = ctl->ops->send_msg(ctl, &args);
+
+       if (ret)
+               return ret;
+
+       *feature_mask_low = args.out_args[0];
+       *feature_mask_high = args.out_args[1];
+
+       return ret;
+}
+
 static bool smu_v15_0_0_is_dpm_running(struct smu_context *smu)
 {
        int ret = 0;
        struct smu_feature_bits feature_enabled;
 
-       ret = smu_cmn_get_enabled_mask(smu, &feature_enabled);
+       ret = smu_v15_0_0_get_enabled_mask(smu, &feature_enabled);
 
        if (ret)
                return false;
@@ -1356,7 +1387,7 @@ static const struct pptable_funcs smu_v15_0_0_ppt_funcs = 
{
        .is_dpm_running = smu_v15_0_0_is_dpm_running,
        .set_watermarks_table = smu_v15_0_0_set_watermarks_table,
        .get_gpu_metrics = smu_v15_0_0_get_gpu_metrics,
-       .get_enabled_mask = smu_cmn_get_enabled_mask,
+       .get_enabled_mask = smu_v15_0_0_get_enabled_mask,
        .get_pp_feature_mask = smu_cmn_get_pp_feature_mask,
        .set_driver_table_location = smu_v15_0_set_driver_table_location,
        .gfx_off_control = smu_v15_0_gfx_off_control,
-- 
2.43.0

Reply via email to