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

drm/amd/pm: add Raven2 watermark WmType setting

Which tells it's a normal pstate change or memory retraining.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Tested-by: Changfeng Zhu <Changfeng.Zhu@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Evan Quan and committed by
Alex Deucher
911779e3 ce2c0006

+13 -1
+2 -1
drivers/gpu/drm/amd/pm/inc/smu10_driver_if.h
··· 54 54 uint16_t MaxMclk; 55 55 56 56 uint8_t WmSetting; 57 - uint8_t Padding[3]; 57 + uint8_t WmType; 58 + uint8_t Padding[2]; 58 59 } WatermarkRowGeneric_t; 59 60 60 61 #define NUM_WM_RANGES 4
+11
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c
··· 1181 1181 struct smu10_hwmgr *data = hwmgr->backend; 1182 1182 struct dm_pp_wm_sets_with_clock_ranges_soc15 *wm_with_clock_ranges = clock_ranges; 1183 1183 Watermarks_t *table = &(data->water_marks_table); 1184 + struct amdgpu_device *adev = hwmgr->adev; 1185 + int i; 1184 1186 1185 1187 smu_set_watermarks_for_clocks_ranges(table,wm_with_clock_ranges); 1188 + 1189 + if (adev->apu_flags & AMD_APU_IS_RAVEN2) { 1190 + for (i = 0; i < NUM_WM_RANGES; i++) 1191 + table->WatermarkRow[WM_DCFCLK][i].WmType = (uint8_t)0; 1192 + 1193 + for (i = 0; i < NUM_WM_RANGES; i++) 1194 + table->WatermarkRow[WM_SOCCLK][i].WmType = (uint8_t)0; 1195 + } 1196 + 1186 1197 smum_smc_table_manager(hwmgr, (uint8_t *)table, (uint16_t)SMU10_WMTABLE, false); 1187 1198 data->water_marks_exist = true; 1188 1199 return 0;