diff options
author | Rex Zhu <Rex.Zhu@amd.com> | 2016-06-08 07:41:00 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-06-21 10:22:39 -0400 |
commit | 40787ef21c2889fc3d96a11775fa412e715d7d48 (patch) | |
tree | 7b093975c89bc03307249e25868a5b22d501ee43 | |
parent | a2fb4934e960b11e4430dccc08d606c99910b447 (diff) |
drm/amd/powerplay: disable UVD SMU handshake for MCLK.
sync up with internal programming recommendations.
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c index 643677fb5212..5ecde13e4893 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c | |||
@@ -2252,6 +2252,9 @@ static int polaris10_enable_deep_sleep_master_switch(struct pp_hwmgr *hwmgr) | |||
2252 | static int polaris10_enable_sclk_mclk_dpm(struct pp_hwmgr *hwmgr) | 2252 | static int polaris10_enable_sclk_mclk_dpm(struct pp_hwmgr *hwmgr) |
2253 | { | 2253 | { |
2254 | struct polaris10_hwmgr *data = (struct polaris10_hwmgr *)(hwmgr->backend); | 2254 | struct polaris10_hwmgr *data = (struct polaris10_hwmgr *)(hwmgr->backend); |
2255 | uint32_t soft_register_value = 0; | ||
2256 | uint32_t handshake_disables_offset = data->soft_regs_start | ||
2257 | + offsetof(SMU74_SoftRegisters, HandshakeDisables); | ||
2255 | 2258 | ||
2256 | /* enable SCLK dpm */ | 2259 | /* enable SCLK dpm */ |
2257 | if (!data->sclk_dpm_key_disabled) | 2260 | if (!data->sclk_dpm_key_disabled) |
@@ -2262,6 +2265,12 @@ static int polaris10_enable_sclk_mclk_dpm(struct pp_hwmgr *hwmgr) | |||
2262 | 2265 | ||
2263 | /* enable MCLK dpm */ | 2266 | /* enable MCLK dpm */ |
2264 | if (0 == data->mclk_dpm_key_disabled) { | 2267 | if (0 == data->mclk_dpm_key_disabled) { |
2268 | /* Disable UVD - SMU handshake for MCLK. */ | ||
2269 | soft_register_value = cgs_read_ind_register(hwmgr->device, | ||
2270 | CGS_IND_REG__SMC, handshake_disables_offset); | ||
2271 | soft_register_value |= SMU7_UVD_MCLK_HANDSHAKE_DISABLE; | ||
2272 | cgs_write_ind_register(hwmgr->device, CGS_IND_REG__SMC, | ||
2273 | handshake_disables_offset, soft_register_value); | ||
2265 | 2274 | ||
2266 | PP_ASSERT_WITH_CODE( | 2275 | PP_ASSERT_WITH_CODE( |
2267 | (0 == smum_send_msg_to_smc(hwmgr->smumgr, | 2276 | (0 == smum_send_msg_to_smc(hwmgr->smumgr, |