]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/pm: unified smu feature cap for sdma reset
authorYang Wang <kevinyang.wang@amd.com>
Thu, 4 Sep 2025 01:53:43 +0000 (09:53 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 15 Sep 2025 21:02:20 +0000 (17:02 -0400)
unified sdma reset smu feature cap

Signed-off-by: Yang Wang <kevinyang.wang@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c

index 3a9b51014c7b13e772fcbc22247ed53f1452eb2b..c4ce056a16136cc4714c0cb84b3a9bb8005e5d33 100644 (file)
@@ -4129,12 +4129,7 @@ int smu_send_rma_reason(struct smu_context *smu)
  */
 bool smu_reset_sdma_is_supported(struct smu_context *smu)
 {
-       bool ret = false;
-
-       if (smu->ppt_funcs && smu->ppt_funcs->reset_sdma_is_supported)
-               ret = smu->ppt_funcs->reset_sdma_is_supported(smu);
-
-       return ret;
+       return smu_feature_cap_test(smu, SMU_FEATURE_CAP_ID__SDMA_RESET);
 }
 
 int smu_reset_sdma(struct smu_context *smu, uint32_t inst_mask)
index 3fc6daf6662c904928a1e44d18f365fed6597ec9..5f07a04fdebca3fe1389c1cfc0e1a944ed0a00a3 100644 (file)
@@ -530,6 +530,7 @@ enum smu_fw_status {
 
 enum smu_feature_cap_id {
        SMU_FEATURE_CAP_ID__LINK_RESET = 0,
+       SMU_FEATURE_CAP_ID__SDMA_RESET,
        SMU_FEATURE_CAP_ID__COUNT,
 };
 
@@ -1432,10 +1433,6 @@ struct pptable_funcs {
         * @reset_sdma: message SMU to soft reset sdma instance.
         */
        int (*reset_sdma)(struct smu_context *smu, uint32_t inst_mask);
-       /**
-        * @reset_sdma_is_supported: Check if support resets the SDMA engine.
-        */
-       bool (*reset_sdma_is_supported)(struct smu_context *smu);
 
        /**
         * @reset_vcn: message SMU to soft reset vcn instance.
index be372f5e76fd4f883cc797dead889780acfd4cd0..73defde12e8ae593c9dcea3bd19bb7a97be63024 100644 (file)
@@ -3232,6 +3232,9 @@ static int smu_v13_0_6_post_init(struct smu_context *smu)
        if (smu_v13_0_6_is_link_reset_supported(smu))
                smu_feature_cap_set(smu, SMU_FEATURE_CAP_ID__LINK_RESET);
 
+       if (smu_v13_0_6_reset_sdma_is_supported(smu))
+               smu_feature_cap_set(smu, SMU_FEATURE_CAP_ID__SDMA_RESET);
+
        return 0;
 }
 
@@ -3913,7 +3916,6 @@ static const struct pptable_funcs smu_v13_0_6_ppt_funcs = {
        .send_hbm_bad_pages_num = smu_v13_0_6_smu_send_hbm_bad_page_num,
        .send_rma_reason = smu_v13_0_6_send_rma_reason,
        .reset_sdma = smu_v13_0_6_reset_sdma,
-       .reset_sdma_is_supported = smu_v13_0_6_reset_sdma_is_supported,
        .dpm_reset_vcn = smu_v13_0_6_reset_vcn,
        .reset_vcn_is_supported = smu_v13_0_6_reset_vcn_is_supported,
        .post_init = smu_v13_0_6_post_init,