DF-1180 / fix.diff
diff --git a/sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c --- a/sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c +++ b/sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c @@ -1035,7 +1035,8 @@ vol_table->mask_low = 0; vol_table->phase_delay = 0; - vol_table->count = dep_table->count; + vol_table->count = min(dep_table->count, + (uint32_t)PP_ATOMFWCTRL_MAX_VOLTAGE_ENTRIES); for (i = 0; i < vol_table->count; i++) { vol_table->entries[i].value = dep_table->entries[i].mvdd; @@ -1062,9 +1063,10 @@ vol_table->mask_low = 0; vol_table->phase_delay = 0; - vol_table->count = dep_table->count; + vol_table->count = min(dep_table->count, + (uint32_t)PP_ATOMFWCTRL_MAX_VOLTAGE_ENTRIES); - for (i = 0; i < dep_table->count; i++) { + for (i = 0; i < vol_table->count; i++) { vol_table->entries[i].value = dep_table->entries[i].vddci; vol_table->entries[i].smio_low = 0; } @@ -1088,7 +1090,8 @@ vol_table->mask_low = 0; vol_table->phase_delay = 0; - vol_table->count = dep_table->count; + vol_table->count = min(dep_table->count, + (uint32_t)PP_ATOMFWCTRL_MAX_VOLTAGE_ENTRIES); for (i = 0; i < vol_table->count; i++) { vol_table->entries[i].value = dep_table->entries[i].vddc; |