unified link reset smu feature cap

Signed-off-by: Yang Wang <kevinyang.w...@amd.com>
---
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c            | 7 +------
 drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h        | 6 +-----
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 4 +++-
 3 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c 
b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 41d568b91f6b..58ba21ad635e 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -3532,15 +3532,10 @@ bool smu_mode1_reset_is_support(struct smu_context *smu)
 
 bool smu_link_reset_is_support(struct smu_context *smu)
 {
-       bool ret = false;
-
        if (!smu->pm_enabled)
                return false;
 
-       if (smu->ppt_funcs && smu->ppt_funcs->link_reset_is_support)
-               ret = smu->ppt_funcs->link_reset_is_support(smu);
-
-       return ret;
+       return smu_feature_cap_test(smu, SMU_FEATURE_CAP_ID__LINK_RESET);
 }
 
 int smu_mode1_reset(struct smu_context *smu)
diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h 
b/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
index 90ebe158940e..fb3e0ad41e35 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
+++ b/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
@@ -529,6 +529,7 @@ enum smu_fw_status {
 
 enum smu_feature_cap_id {
        SMU_FEATURE_CAP_ID__MODE1_RESET = 0,
+       SMU_FEATURE_CAP_ID__LINK_RESET,
        SMU_FEATURE_CAP_ID__COUNT,
 };
 
@@ -1276,11 +1277,6 @@ struct pptable_funcs {
         */
        int (*baco_exit)(struct smu_context *smu);
 
-       /**
-        * @link_reset_is_support: Check if GPU supports link reset.
-        */
-       bool (*link_reset_is_support)(struct smu_context *smu);
-
        /**
         * @mode1_reset: Perform mode1 reset.
         *
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
index 5b3341c3f82f..c12268ad6289 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
@@ -3218,6 +3218,9 @@ static int smu_v13_0_6_post_init(struct smu_context *smu)
 {
        smu_feature_cap_set(smu, SMU_FEATURE_CAP_ID__MODE1_RESET);
 
+       if (smu_v13_0_6_is_link_reset_supported(smu))
+               smu_feature_cap_set(smu, SMU_FEATURE_CAP_ID__LINK_RESET);
+
        return 0;
 }
 
@@ -3883,7 +3886,6 @@ static const struct pptable_funcs smu_v13_0_6_ppt_funcs = 
{
        .get_pm_metrics = smu_v13_0_6_get_pm_metrics,
        .get_xcp_metrics = smu_v13_0_6_get_xcp_metrics,
        .get_thermal_temperature_range = 
smu_v13_0_6_get_thermal_temperature_range,
-       .link_reset_is_support = smu_v13_0_6_is_link_reset_supported,
        .mode1_reset = smu_v13_0_6_mode1_reset,
        .mode2_reset = smu_v13_0_6_mode2_reset,
        .link_reset = smu_v13_0_6_link_reset,
-- 
2.34.1

Reply via email to