]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/amd/pm: correct sclk/mclk dpm enablement
authorEvan Quan <evan.quan@amd.com>
Fri, 25 Sep 2020 06:24:04 +0000 (14:24 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 27 Oct 2020 15:59:51 +0000 (11:59 -0400)
Correct Polaris10 sclk/mclk dpm enablement.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c
drivers/gpu/drm/amd/pm/powerplay/smumgr/polaris10_smumgr.c

index 7ec83a826816eaf59ab5f11ecc0a4b1d0d820008..1f13b88409c72abe907019bc1607ca9ffa33406b 100644 (file)
@@ -1148,7 +1148,8 @@ static int smu7_enable_sclk_mclk_dpm(struct pp_hwmgr *hwmgr)
 
        /* enable SCLK dpm */
        if (!data->sclk_dpm_key_disabled) {
-               if (hwmgr->chip_id == CHIP_VEGAM)
+               if (hwmgr->chip_id >= CHIP_POLARIS10 &&
+                   hwmgr->chip_id <= CHIP_VEGAM)
                        smu7_disable_sclk_vce_handshake(hwmgr);
 
                PP_ASSERT_WITH_CODE(
@@ -1169,7 +1170,11 @@ static int smu7_enable_sclk_mclk_dpm(struct pp_hwmgr *hwmgr)
                                "Failed to enable MCLK DPM during DPM Start Function!",
                                return -EINVAL);
 
-               if (hwmgr->chip_family != CHIP_VEGAM)
+               if ((hwmgr->chip_family == AMDGPU_FAMILY_CI) ||
+                   (hwmgr->chip_id == CHIP_POLARIS10) ||
+                   (hwmgr->chip_id == CHIP_POLARIS11) ||
+                   (hwmgr->chip_id == CHIP_POLARIS12) ||
+                   (hwmgr->chip_id == CHIP_TONGA))
                        PHM_WRITE_FIELD(hwmgr->device, MC_SEQ_CNTL_3, CAC_EN, 0x1);
 
 
index 8176b855b9df3cc99573ebd0cce01281bc3fb1cd..41df6e7813eaa90149b3ab8c41c100c1f3636a19 100644 (file)
@@ -2470,7 +2470,8 @@ static uint32_t polaris10_get_mac_definition(uint32_t value)
        case SMU_MAX_LEVELS_MVDD:
                return SMU74_MAX_LEVELS_MVDD;
        case SMU_UVD_MCLK_HANDSHAKE_DISABLE:
-               return SMU7_UVD_MCLK_HANDSHAKE_DISABLE;
+               return SMU7_UVD_MCLK_HANDSHAKE_DISABLE |
+                               SMU7_VCE_MCLK_HANDSHAKE_DISABLE;
        }
 
        pr_warn("can't get the mac of %x\n", value);