diff options
author | Rex Zhu <Rex.Zhu@amd.com> | 2018-01-23 04:12:29 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-02-19 14:18:47 -0500 |
commit | c7429b3ae97fe3fdbbc8fb61ab0a032a558bba9e (patch) | |
tree | ea84fccabd3bc0ab47f59084bdb7d71a6db45009 | |
parent | 527d9427fa21814988bec378f9a8b2c2d441fcc1 (diff) |
drm/amd/pp: Add struct profile_mode_setting for smu7
Move configurable profiling parameters to struct
profile_mode_setting and initialize current_profile_setting.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 10 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h | 15 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 14 |
7 files changed, 56 insertions, 39 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c index 3ff9536a2641..f6236f93ed13 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | |||
@@ -1484,8 +1484,6 @@ static void smu7_init_dpm_defaults(struct pp_hwmgr *hwmgr) | |||
1484 | 1484 | ||
1485 | data->dll_default_on = false; | 1485 | data->dll_default_on = false; |
1486 | data->mclk_dpm0_activity_target = 0xa; | 1486 | data->mclk_dpm0_activity_target = 0xa; |
1487 | data->mclk_activity_target = SMU7_MCLK_TARGETACTIVITY_DFLT; | ||
1488 | data->sclk_activity_target = SMU7_SCLK_TARGETACTIVITY_DFLT; | ||
1489 | data->vddc_vddgfx_delta = 300; | 1487 | data->vddc_vddgfx_delta = 300; |
1490 | data->static_screen_threshold = SMU7_STATICSCREENTHRESHOLD_DFLT; | 1488 | data->static_screen_threshold = SMU7_STATICSCREENTHRESHOLD_DFLT; |
1491 | data->static_screen_threshold_unit = SMU7_STATICSCREENTHRESHOLDUNIT_DFLT; | 1489 | data->static_screen_threshold_unit = SMU7_STATICSCREENTHRESHOLDUNIT_DFLT; |
@@ -1509,6 +1507,14 @@ static void smu7_init_dpm_defaults(struct pp_hwmgr *hwmgr) | |||
1509 | data->enable_pkg_pwr_tracking_feature = true; | 1507 | data->enable_pkg_pwr_tracking_feature = true; |
1510 | data->force_pcie_gen = PP_PCIEGenInvalid; | 1508 | data->force_pcie_gen = PP_PCIEGenInvalid; |
1511 | data->ulv_supported = hwmgr->feature_mask & PP_ULV_MASK ? true : false; | 1509 | data->ulv_supported = hwmgr->feature_mask & PP_ULV_MASK ? true : false; |
1510 | data->current_profile_setting.bupdate_sclk = 1; | ||
1511 | data->current_profile_setting.sclk_up_hyst = 0; | ||
1512 | data->current_profile_setting.sclk_down_hyst = 100; | ||
1513 | data->current_profile_setting.sclk_activity = SMU7_SCLK_TARGETACTIVITY_DFLT; | ||
1514 | data->current_profile_setting.bupdate_sclk = 1; | ||
1515 | data->current_profile_setting.mclk_up_hyst = 0; | ||
1516 | data->current_profile_setting.mclk_down_hyst = 100; | ||
1517 | data->current_profile_setting.mclk_activity = SMU7_MCLK_TARGETACTIVITY_DFLT; | ||
1512 | 1518 | ||
1513 | if (hwmgr->chip_id == CHIP_POLARIS12 || hwmgr->is_kicker) { | 1519 | if (hwmgr->chip_id == CHIP_POLARIS12 || hwmgr->is_kicker) { |
1514 | uint8_t tmp1, tmp2; | 1520 | uint8_t tmp1, tmp2; |
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h index 375fa10942f8..3bcfc61cd5a2 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h | |||
@@ -186,6 +186,17 @@ struct smu7_odn_dpm_table { | |||
186 | uint32_t odn_mclk_min_limit; | 186 | uint32_t odn_mclk_min_limit; |
187 | }; | 187 | }; |
188 | 188 | ||
189 | struct profile_mode_setting { | ||
190 | uint8_t bupdate_sclk; | ||
191 | uint8_t sclk_up_hyst; | ||
192 | uint8_t sclk_down_hyst; | ||
193 | uint16_t sclk_activity; | ||
194 | uint8_t bupdate_mclk; | ||
195 | uint8_t mclk_up_hyst; | ||
196 | uint8_t mclk_down_hyst; | ||
197 | uint16_t mclk_activity; | ||
198 | }; | ||
199 | |||
189 | struct smu7_hwmgr { | 200 | struct smu7_hwmgr { |
190 | struct smu7_dpm_table dpm_table; | 201 | struct smu7_dpm_table dpm_table; |
191 | struct smu7_dpm_table golden_dpm_table; | 202 | struct smu7_dpm_table golden_dpm_table; |
@@ -289,8 +300,6 @@ struct smu7_hwmgr { | |||
289 | struct smu7_pcie_perf_range pcie_lane_power_saving; | 300 | struct smu7_pcie_perf_range pcie_lane_power_saving; |
290 | bool use_pcie_performance_levels; | 301 | bool use_pcie_performance_levels; |
291 | bool use_pcie_power_saving_levels; | 302 | bool use_pcie_power_saving_levels; |
292 | uint16_t mclk_activity_target; | ||
293 | uint16_t sclk_activity_target; | ||
294 | uint32_t mclk_dpm0_activity_target; | 303 | uint32_t mclk_dpm0_activity_target; |
295 | uint32_t low_sclk_interrupt_threshold; | 304 | uint32_t low_sclk_interrupt_threshold; |
296 | uint32_t last_mclk_dpm_enable_mask; | 305 | uint32_t last_mclk_dpm_enable_mask; |
@@ -316,6 +325,8 @@ struct smu7_hwmgr { | |||
316 | uint16_t mem_latency_high; | 325 | uint16_t mem_latency_high; |
317 | uint16_t mem_latency_low; | 326 | uint16_t mem_latency_low; |
318 | uint32_t vr_config; | 327 | uint32_t vr_config; |
328 | struct profile_mode_setting custom_profile_setting; | ||
329 | struct profile_mode_setting current_profile_setting; | ||
319 | }; | 330 | }; |
320 | 331 | ||
321 | /* To convert to Q8.8 format for firmware */ | 332 | /* To convert to Q8.8 format for firmware */ |
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c index 01cf32ccab5e..61dbbf19fed9 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c | |||
@@ -444,8 +444,8 @@ static int ci_populate_single_graphic_level(struct pp_hwmgr *hwmgr, | |||
444 | level->EnabledForActivity = 0; | 444 | level->EnabledForActivity = 0; |
445 | /* this level can be used for throttling.*/ | 445 | /* this level can be used for throttling.*/ |
446 | level->EnabledForThrottle = 1; | 446 | level->EnabledForThrottle = 1; |
447 | level->UpH = 0; | 447 | level->UpH = data->current_profile_setting.sclk_up_hyst; |
448 | level->DownH = 0; | 448 | level->DownH = data->current_profile_setting.sclk_down_hyst; |
449 | level->VoltageDownH = 0; | 449 | level->VoltageDownH = 0; |
450 | level->PowerThrottle = 0; | 450 | level->PowerThrottle = 0; |
451 | 451 | ||
@@ -492,7 +492,7 @@ static int ci_populate_all_graphic_levels(struct pp_hwmgr *hwmgr) | |||
492 | for (i = 0; i < dpm_table->sclk_table.count; i++) { | 492 | for (i = 0; i < dpm_table->sclk_table.count; i++) { |
493 | result = ci_populate_single_graphic_level(hwmgr, | 493 | result = ci_populate_single_graphic_level(hwmgr, |
494 | dpm_table->sclk_table.dpm_levels[i].value, | 494 | dpm_table->sclk_table.dpm_levels[i].value, |
495 | data->sclk_activity_target, | 495 | data->current_profile_setting.sclk_activity, |
496 | &levels[i]); | 496 | &levels[i]); |
497 | if (result) | 497 | if (result) |
498 | return result; | 498 | return result; |
@@ -1226,12 +1226,12 @@ static int ci_populate_single_memory_level( | |||
1226 | 1226 | ||
1227 | memory_level->EnabledForThrottle = 1; | 1227 | memory_level->EnabledForThrottle = 1; |
1228 | memory_level->EnabledForActivity = 1; | 1228 | memory_level->EnabledForActivity = 1; |
1229 | memory_level->UpH = 0; | 1229 | memory_level->UpH = data->current_profile_setting.mclk_up_hyst; |
1230 | memory_level->DownH = 100; | 1230 | memory_level->DownH = data->current_profile_setting.mclk_down_hyst; |
1231 | memory_level->VoltageDownH = 0; | 1231 | memory_level->VoltageDownH = 0; |
1232 | 1232 | ||
1233 | /* Indicates maximum activity level for this performance level.*/ | 1233 | /* Indicates maximum activity level for this performance level.*/ |
1234 | memory_level->ActivityLevel = data->mclk_activity_target; | 1234 | memory_level->ActivityLevel = data->current_profile_setting.mclk_activity; |
1235 | memory_level->StutterEnable = 0; | 1235 | memory_level->StutterEnable = 0; |
1236 | memory_level->StrobeEnable = 0; | 1236 | memory_level->StrobeEnable = 0; |
1237 | memory_level->EdcReadEnable = 0; | 1237 | memory_level->EdcReadEnable = 0; |
@@ -1515,7 +1515,7 @@ static int ci_populate_smc_acpi_level(struct pp_hwmgr *hwmgr, | |||
1515 | table->MemoryACPILevel.DownH = 100; | 1515 | table->MemoryACPILevel.DownH = 100; |
1516 | table->MemoryACPILevel.VoltageDownH = 0; | 1516 | table->MemoryACPILevel.VoltageDownH = 0; |
1517 | /* Indicates maximum activity level for this performance level.*/ | 1517 | /* Indicates maximum activity level for this performance level.*/ |
1518 | table->MemoryACPILevel.ActivityLevel = PP_HOST_TO_SMC_US(data->mclk_activity_target); | 1518 | table->MemoryACPILevel.ActivityLevel = PP_HOST_TO_SMC_US(data->current_profile_setting.mclk_activity); |
1519 | 1519 | ||
1520 | table->MemoryACPILevel.StutterEnable = 0; | 1520 | table->MemoryACPILevel.StutterEnable = 0; |
1521 | table->MemoryACPILevel.StrobeEnable = 0; | 1521 | table->MemoryACPILevel.StrobeEnable = 0; |
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c index e54038075886..1d0bc6632217 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | |||
@@ -1001,8 +1001,8 @@ static int fiji_populate_single_graphic_level(struct pp_hwmgr *hwmgr, | |||
1001 | level->CcPwrDynRm1 = 0; | 1001 | level->CcPwrDynRm1 = 0; |
1002 | level->EnabledForActivity = 0; | 1002 | level->EnabledForActivity = 0; |
1003 | level->EnabledForThrottle = 1; | 1003 | level->EnabledForThrottle = 1; |
1004 | level->UpHyst = 10; | 1004 | level->UpHyst = data->current_profile_setting.sclk_up_hyst; |
1005 | level->DownHyst = 0; | 1005 | level->DownHyst = data->current_profile_setting.sclk_down_hyst; |
1006 | level->VoltageDownHyst = 0; | 1006 | level->VoltageDownHyst = 0; |
1007 | level->PowerThrottle = 0; | 1007 | level->PowerThrottle = 0; |
1008 | 1008 | ||
@@ -1059,7 +1059,7 @@ static int fiji_populate_all_graphic_levels(struct pp_hwmgr *hwmgr) | |||
1059 | for (i = 0; i < dpm_table->sclk_table.count; i++) { | 1059 | for (i = 0; i < dpm_table->sclk_table.count; i++) { |
1060 | result = fiji_populate_single_graphic_level(hwmgr, | 1060 | result = fiji_populate_single_graphic_level(hwmgr, |
1061 | dpm_table->sclk_table.dpm_levels[i].value, | 1061 | dpm_table->sclk_table.dpm_levels[i].value, |
1062 | data->sclk_activity_target, | 1062 | data->current_profile_setting.sclk_activity, |
1063 | &levels[i]); | 1063 | &levels[i]); |
1064 | if (result) | 1064 | if (result) |
1065 | return result; | 1065 | return result; |
@@ -1222,10 +1222,10 @@ static int fiji_populate_single_memory_level(struct pp_hwmgr *hwmgr, | |||
1222 | 1222 | ||
1223 | mem_level->EnabledForThrottle = 1; | 1223 | mem_level->EnabledForThrottle = 1; |
1224 | mem_level->EnabledForActivity = 0; | 1224 | mem_level->EnabledForActivity = 0; |
1225 | mem_level->UpHyst = 0; | 1225 | mem_level->UpHyst = data->current_profile_setting.mclk_up_hyst; |
1226 | mem_level->DownHyst = 100; | 1226 | mem_level->DownHyst = data->current_profile_setting.mclk_down_hyst; |
1227 | mem_level->VoltageDownHyst = 0; | 1227 | mem_level->VoltageDownHyst = 0; |
1228 | mem_level->ActivityLevel = data->mclk_activity_target; | 1228 | mem_level->ActivityLevel = data->current_profile_setting.mclk_activity; |
1229 | mem_level->StutterEnable = false; | 1229 | mem_level->StutterEnable = false; |
1230 | 1230 | ||
1231 | mem_level->DisplayWatermark = PPSMC_DISPLAY_WATERMARK_LOW; | 1231 | mem_level->DisplayWatermark = PPSMC_DISPLAY_WATERMARK_LOW; |
@@ -1443,7 +1443,7 @@ static int fiji_populate_smc_acpi_level(struct pp_hwmgr *hwmgr, | |||
1443 | table->MemoryACPILevel.DownHyst = 100; | 1443 | table->MemoryACPILevel.DownHyst = 100; |
1444 | table->MemoryACPILevel.VoltageDownHyst = 0; | 1444 | table->MemoryACPILevel.VoltageDownHyst = 0; |
1445 | table->MemoryACPILevel.ActivityLevel = | 1445 | table->MemoryACPILevel.ActivityLevel = |
1446 | PP_HOST_TO_SMC_US(data->mclk_activity_target); | 1446 | PP_HOST_TO_SMC_US(data->current_profile_setting.mclk_activity); |
1447 | 1447 | ||
1448 | table->MemoryACPILevel.StutterEnable = false; | 1448 | table->MemoryACPILevel.StutterEnable = false; |
1449 | CONVERT_FROM_HOST_TO_SMC_UL(table->MemoryACPILevel.MclkFrequency); | 1449 | CONVERT_FROM_HOST_TO_SMC_UL(table->MemoryACPILevel.MclkFrequency); |
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c index 5cf588d6660c..bf58a684d624 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c | |||
@@ -928,8 +928,8 @@ static int iceland_populate_single_graphic_level(struct pp_hwmgr *hwmgr, | |||
928 | graphic_level->EnabledForActivity = 0; | 928 | graphic_level->EnabledForActivity = 0; |
929 | /* this level can be used for throttling.*/ | 929 | /* this level can be used for throttling.*/ |
930 | graphic_level->EnabledForThrottle = 1; | 930 | graphic_level->EnabledForThrottle = 1; |
931 | graphic_level->UpHyst = 0; | 931 | graphic_level->UpHyst = data->current_profile_setting.sclk_up_hyst; |
932 | graphic_level->DownHyst = 100; | 932 | graphic_level->DownHyst = data->current_profile_setting.sclk_down_hyst; |
933 | graphic_level->VoltageDownHyst = 0; | 933 | graphic_level->VoltageDownHyst = 0; |
934 | graphic_level->PowerThrottle = 0; | 934 | graphic_level->PowerThrottle = 0; |
935 | 935 | ||
@@ -985,7 +985,7 @@ static int iceland_populate_all_graphic_levels(struct pp_hwmgr *hwmgr) | |||
985 | for (i = 0; i < dpm_table->sclk_table.count; i++) { | 985 | for (i = 0; i < dpm_table->sclk_table.count; i++) { |
986 | result = iceland_populate_single_graphic_level(hwmgr, | 986 | result = iceland_populate_single_graphic_level(hwmgr, |
987 | dpm_table->sclk_table.dpm_levels[i].value, | 987 | dpm_table->sclk_table.dpm_levels[i].value, |
988 | data->sclk_activity_target, | 988 | data->current_profile_setting.sclk_activity, |
989 | &(smu_data->smc_state_table.GraphicsLevel[i])); | 989 | &(smu_data->smc_state_table.GraphicsLevel[i])); |
990 | if (result != 0) | 990 | if (result != 0) |
991 | return result; | 991 | return result; |
@@ -1271,12 +1271,12 @@ static int iceland_populate_single_memory_level( | |||
1271 | 1271 | ||
1272 | memory_level->EnabledForThrottle = 1; | 1272 | memory_level->EnabledForThrottle = 1; |
1273 | memory_level->EnabledForActivity = 0; | 1273 | memory_level->EnabledForActivity = 0; |
1274 | memory_level->UpHyst = 0; | 1274 | memory_level->UpHyst = data->current_profile_setting.mclk_up_hyst; |
1275 | memory_level->DownHyst = 100; | 1275 | memory_level->DownHyst = data->current_profile_setting.mclk_down_hyst; |
1276 | memory_level->VoltageDownHyst = 0; | 1276 | memory_level->VoltageDownHyst = 0; |
1277 | 1277 | ||
1278 | /* Indicates maximum activity level for this performance level.*/ | 1278 | /* Indicates maximum activity level for this performance level.*/ |
1279 | memory_level->ActivityLevel = data->mclk_activity_target; | 1279 | memory_level->ActivityLevel = data->current_profile_setting.mclk_activity; |
1280 | memory_level->StutterEnable = 0; | 1280 | memory_level->StutterEnable = 0; |
1281 | memory_level->StrobeEnable = 0; | 1281 | memory_level->StrobeEnable = 0; |
1282 | memory_level->EdcReadEnable = 0; | 1282 | memory_level->EdcReadEnable = 0; |
@@ -1557,7 +1557,7 @@ static int iceland_populate_smc_acpi_level(struct pp_hwmgr *hwmgr, | |||
1557 | table->MemoryACPILevel.DownHyst = 100; | 1557 | table->MemoryACPILevel.DownHyst = 100; |
1558 | table->MemoryACPILevel.VoltageDownHyst = 0; | 1558 | table->MemoryACPILevel.VoltageDownHyst = 0; |
1559 | /* Indicates maximum activity level for this performance level.*/ | 1559 | /* Indicates maximum activity level for this performance level.*/ |
1560 | table->MemoryACPILevel.ActivityLevel = PP_HOST_TO_SMC_US(data->mclk_activity_target); | 1560 | table->MemoryACPILevel.ActivityLevel = PP_HOST_TO_SMC_US(data->current_profile_setting.mclk_activity); |
1561 | 1561 | ||
1562 | table->MemoryACPILevel.StutterEnable = 0; | 1562 | table->MemoryACPILevel.StutterEnable = 0; |
1563 | table->MemoryACPILevel.StrobeEnable = 0; | 1563 | table->MemoryACPILevel.StrobeEnable = 0; |
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c index f9856e1c89ff..d2f8e34e0a4e 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c | |||
@@ -968,8 +968,8 @@ static int polaris10_populate_single_graphic_level(struct pp_hwmgr *hwmgr, | |||
968 | level->CcPwrDynRm1 = 0; | 968 | level->CcPwrDynRm1 = 0; |
969 | level->EnabledForActivity = 0; | 969 | level->EnabledForActivity = 0; |
970 | level->EnabledForThrottle = 1; | 970 | level->EnabledForThrottle = 1; |
971 | level->UpHyst = 10; | 971 | level->UpHyst = data->current_profile_setting.sclk_up_hyst; |
972 | level->DownHyst = 0; | 972 | level->DownHyst = data->current_profile_setting.sclk_down_hyst; |
973 | level->VoltageDownHyst = 0; | 973 | level->VoltageDownHyst = 0; |
974 | level->PowerThrottle = 0; | 974 | level->PowerThrottle = 0; |
975 | data->display_timing.min_clock_in_sr = hwmgr->display_config.min_core_set_clock_in_sr; | 975 | data->display_timing.min_clock_in_sr = hwmgr->display_config.min_core_set_clock_in_sr; |
@@ -1033,7 +1033,7 @@ static int polaris10_populate_all_graphic_levels(struct pp_hwmgr *hwmgr) | |||
1033 | 1033 | ||
1034 | result = polaris10_populate_single_graphic_level(hwmgr, | 1034 | result = polaris10_populate_single_graphic_level(hwmgr, |
1035 | dpm_table->sclk_table.dpm_levels[i].value, | 1035 | dpm_table->sclk_table.dpm_levels[i].value, |
1036 | hw_data->sclk_activity_target, | 1036 | hw_data->current_profile_setting.sclk_activity, |
1037 | &(smu_data->smc_state_table.GraphicsLevel[i])); | 1037 | &(smu_data->smc_state_table.GraphicsLevel[i])); |
1038 | if (result) | 1038 | if (result) |
1039 | return result; | 1039 | return result; |
@@ -1130,10 +1130,10 @@ static int polaris10_populate_single_memory_level(struct pp_hwmgr *hwmgr, | |||
1130 | mem_level->MclkFrequency = clock; | 1130 | mem_level->MclkFrequency = clock; |
1131 | mem_level->EnabledForThrottle = 1; | 1131 | mem_level->EnabledForThrottle = 1; |
1132 | mem_level->EnabledForActivity = 0; | 1132 | mem_level->EnabledForActivity = 0; |
1133 | mem_level->UpHyst = 0; | 1133 | mem_level->UpHyst = data->current_profile_setting.mclk_up_hyst; |
1134 | mem_level->DownHyst = 100; | 1134 | mem_level->DownHyst = data->current_profile_setting.mclk_down_hyst; |
1135 | mem_level->VoltageDownHyst = 0; | 1135 | mem_level->VoltageDownHyst = 0; |
1136 | mem_level->ActivityLevel = data->mclk_activity_target; | 1136 | mem_level->ActivityLevel = data->current_profile_setting.mclk_activity; |
1137 | mem_level->StutterEnable = false; | 1137 | mem_level->StutterEnable = false; |
1138 | mem_level->DisplayWatermark = PPSMC_DISPLAY_WATERMARK_LOW; | 1138 | mem_level->DisplayWatermark = PPSMC_DISPLAY_WATERMARK_LOW; |
1139 | 1139 | ||
@@ -1314,7 +1314,7 @@ static int polaris10_populate_smc_acpi_level(struct pp_hwmgr *hwmgr, | |||
1314 | table->MemoryACPILevel.DownHyst = 100; | 1314 | table->MemoryACPILevel.DownHyst = 100; |
1315 | table->MemoryACPILevel.VoltageDownHyst = 0; | 1315 | table->MemoryACPILevel.VoltageDownHyst = 0; |
1316 | table->MemoryACPILevel.ActivityLevel = | 1316 | table->MemoryACPILevel.ActivityLevel = |
1317 | PP_HOST_TO_SMC_US(data->mclk_activity_target); | 1317 | PP_HOST_TO_SMC_US(data->current_profile_setting.mclk_activity); |
1318 | 1318 | ||
1319 | CONVERT_FROM_HOST_TO_SMC_UL(table->MemoryACPILevel.MclkFrequency); | 1319 | CONVERT_FROM_HOST_TO_SMC_UL(table->MemoryACPILevel.MclkFrequency); |
1320 | CONVERT_FROM_HOST_TO_SMC_UL(table->MemoryACPILevel.MinVoltage); | 1320 | CONVERT_FROM_HOST_TO_SMC_UL(table->MemoryACPILevel.MinVoltage); |
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c index ce6e740074af..70888478533f 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | |||
@@ -644,8 +644,8 @@ static int tonga_populate_single_graphic_level(struct pp_hwmgr *hwmgr, | |||
644 | graphic_level->EnabledForActivity = 0; | 644 | graphic_level->EnabledForActivity = 0; |
645 | /* this level can be used for throttling.*/ | 645 | /* this level can be used for throttling.*/ |
646 | graphic_level->EnabledForThrottle = 1; | 646 | graphic_level->EnabledForThrottle = 1; |
647 | graphic_level->UpHyst = 0; | 647 | graphic_level->UpHyst = data->current_profile_setting.sclk_up_hyst; |
648 | graphic_level->DownHyst = 0; | 648 | graphic_level->DownHyst = data->current_profile_setting.sclk_down_hyst; |
649 | graphic_level->VoltageDownHyst = 0; | 649 | graphic_level->VoltageDownHyst = 0; |
650 | graphic_level->PowerThrottle = 0; | 650 | graphic_level->PowerThrottle = 0; |
651 | 651 | ||
@@ -704,7 +704,7 @@ static int tonga_populate_all_graphic_levels(struct pp_hwmgr *hwmgr) | |||
704 | for (i = 0; i < dpm_table->sclk_table.count; i++) { | 704 | for (i = 0; i < dpm_table->sclk_table.count; i++) { |
705 | result = tonga_populate_single_graphic_level(hwmgr, | 705 | result = tonga_populate_single_graphic_level(hwmgr, |
706 | dpm_table->sclk_table.dpm_levels[i].value, | 706 | dpm_table->sclk_table.dpm_levels[i].value, |
707 | data->sclk_activity_target, | 707 | data->current_profile_setting.sclk_activity, |
708 | &(smu_data->smc_state_table.GraphicsLevel[i])); | 708 | &(smu_data->smc_state_table.GraphicsLevel[i])); |
709 | if (result != 0) | 709 | if (result != 0) |
710 | return result; | 710 | return result; |
@@ -994,12 +994,12 @@ static int tonga_populate_single_memory_level( | |||
994 | 994 | ||
995 | memory_level->EnabledForThrottle = 1; | 995 | memory_level->EnabledForThrottle = 1; |
996 | memory_level->EnabledForActivity = 0; | 996 | memory_level->EnabledForActivity = 0; |
997 | memory_level->UpHyst = 0; | 997 | memory_level->UpHyst = data->current_profile_setting.mclk_up_hyst; |
998 | memory_level->DownHyst = 100; | 998 | memory_level->DownHyst = data->current_profile_setting.mclk_down_hyst; |
999 | memory_level->VoltageDownHyst = 0; | 999 | memory_level->VoltageDownHyst = 0; |
1000 | 1000 | ||
1001 | /* Indicates maximum activity level for this performance level.*/ | 1001 | /* Indicates maximum activity level for this performance level.*/ |
1002 | memory_level->ActivityLevel = data->mclk_activity_target; | 1002 | memory_level->ActivityLevel = data->current_profile_setting.mclk_activity; |
1003 | memory_level->StutterEnable = 0; | 1003 | memory_level->StutterEnable = 0; |
1004 | memory_level->StrobeEnable = 0; | 1004 | memory_level->StrobeEnable = 0; |
1005 | memory_level->EdcReadEnable = 0; | 1005 | memory_level->EdcReadEnable = 0; |
@@ -1289,7 +1289,7 @@ static int tonga_populate_smc_acpi_level(struct pp_hwmgr *hwmgr, | |||
1289 | table->MemoryACPILevel.VoltageDownHyst = 0; | 1289 | table->MemoryACPILevel.VoltageDownHyst = 0; |
1290 | /* Indicates maximum activity level for this performance level.*/ | 1290 | /* Indicates maximum activity level for this performance level.*/ |
1291 | table->MemoryACPILevel.ActivityLevel = | 1291 | table->MemoryACPILevel.ActivityLevel = |
1292 | PP_HOST_TO_SMC_US(data->mclk_activity_target); | 1292 | PP_HOST_TO_SMC_US(data->current_profile_setting.mclk_activity); |
1293 | 1293 | ||
1294 | table->MemoryACPILevel.StutterEnable = 0; | 1294 | table->MemoryACPILevel.StutterEnable = 0; |
1295 | table->MemoryACPILevel.StrobeEnable = 0; | 1295 | table->MemoryACPILevel.StrobeEnable = 0; |