Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/pm: fix SMU13 runpm hang due to unintentional workaround

The workaround designed for some specific ASICs is wrongly applied
to SMU13 ASICs. That leads to some runpm hang.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Evan Quan and committed by
Alex Deucher
9635709a a60254d2

+11 -12
+11 -12
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
··· 1156 1156 uint64_t features_supported; 1157 1157 int ret = 0; 1158 1158 1159 - if (adev->in_suspend && smu_is_dpm_running(smu)) { 1160 - dev_info(adev->dev, "dpm has been enabled\n"); 1161 - /* this is needed specifically */ 1162 - switch (adev->ip_versions[MP1_HWIP][0]) { 1163 - case IP_VERSION(11, 0, 7): 1164 - case IP_VERSION(11, 0, 11): 1165 - case IP_VERSION(11, 5, 0): 1166 - case IP_VERSION(11, 0, 12): 1159 + switch (adev->ip_versions[MP1_HWIP][0]) { 1160 + case IP_VERSION(11, 0, 7): 1161 + case IP_VERSION(11, 0, 11): 1162 + case IP_VERSION(11, 5, 0): 1163 + case IP_VERSION(11, 0, 12): 1164 + if (adev->in_suspend && smu_is_dpm_running(smu)) { 1165 + dev_info(adev->dev, "dpm has been enabled\n"); 1167 1166 ret = smu_system_features_control(smu, true); 1168 1167 if (ret) 1169 1168 dev_err(adev->dev, "Failed system features control!\n"); 1170 - break; 1171 - default: 1172 - break; 1169 + return ret; 1173 1170 } 1174 - return ret; 1171 + break; 1172 + default: 1173 + break; 1175 1174 } 1176 1175 1177 1176 ret = smu_init_display_count(smu, 0);