Skip to content

Commit 84f8508

Browse files
Rex Zhualexdeucher
authored andcommitted
drm/amd/pp: Fix bug voltage can't be OD separately on VI
Make sure to update the MCLK and SCLK flags when setting the VDDC flags due to dependencies. Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Rex Zhu <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent d78fd72 commit 84f8508

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4743,23 +4743,27 @@ static void smu7_check_dpm_table_updated(struct pp_hwmgr *hwmgr)
47434743

47444744
for (i=0; i < dep_table->count; i++) {
47454745
if (dep_table->entries[i].vddc != odn_dep_table->entries[i].vddc) {
4746-
data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_VDDC;
4747-
break;
4746+
data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_VDDC | DPMTABLE_OD_UPDATE_MCLK;
4747+
return;
47484748
}
47494749
}
4750-
if (i == dep_table->count)
4750+
if (i == dep_table->count && data->need_update_smu7_dpm_table & DPMTABLE_OD_UPDATE_VDDC) {
47514751
data->need_update_smu7_dpm_table &= ~DPMTABLE_OD_UPDATE_VDDC;
4752+
data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_MCLK;
4753+
}
47524754

47534755
dep_table = table_info->vdd_dep_on_sclk;
47544756
odn_dep_table = (struct phm_ppt_v1_clock_voltage_dependency_table *)&(odn_table->vdd_dependency_on_sclk);
47554757
for (i=0; i < dep_table->count; i++) {
47564758
if (dep_table->entries[i].vddc != odn_dep_table->entries[i].vddc) {
4757-
data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_VDDC;
4758-
break;
4759+
data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_VDDC | DPMTABLE_OD_UPDATE_SCLK;
4760+
return;
47594761
}
47604762
}
4761-
if (i == dep_table->count)
4763+
if (i == dep_table->count && data->need_update_smu7_dpm_table & DPMTABLE_OD_UPDATE_VDDC) {
47624764
data->need_update_smu7_dpm_table &= ~DPMTABLE_OD_UPDATE_VDDC;
4765+
data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_SCLK;
4766+
}
47634767
}
47644768

47654769
static int smu7_odn_edit_dpm_table(struct pp_hwmgr *hwmgr,

0 commit comments

Comments
 (0)