diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/4082-drm-amd-pp-Refine-the-output-of-pp_power_profile_mod.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/4082-drm-amd-pp-Refine-the-output-of-pp_power_profile_mod.patch | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/4082-drm-amd-pp-Refine-the-output-of-pp_power_profile_mod.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/4082-drm-amd-pp-Refine-the-output-of-pp_power_profile_mod.patch new file mode 100644 index 00000000..5e02da6f --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/4082-drm-amd-pp-Refine-the-output-of-pp_power_profile_mod.patch @@ -0,0 +1,142 @@ +From da813eb8125970d3b7c0d09af009c699ef11e8c2 Mon Sep 17 00:00:00 2001 +From: Rex Zhu <Rex.Zhu@amd.com> +Date: Mon, 7 May 2018 14:23:04 +0800 +Subject: [PATCH 4082/4131] drm/amd/pp: Refine the output of + pp_power_profile_mode on VI +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In order to keep consist with Vega, +the output format of the pp_power_profile_mode would be +<integer><mode name string>< “*” for current profile>:"detail settings" +and remove the "CURRENT" mode line. + +for example: +NUM MODE_NAME SCLK_UP_HYST SCLK_DOWN_HYST SCLK_ACTIVE_LEVEL MCLK_UP_HYST MCLK_DOWN_HYST MCLK_ACTIVE_LEVEL + 0 3D_FULL_SCREEN: 0 100 30 0 100 10 + 1 POWER_SAVING: 10 0 30 - - - + 2 VIDEO: - - - 10 16 31 + 3 VR: 0 11 50 0 100 10 + 4 COMPUTE: 0 5 30 - - - + 5 CUSTOM *: 0 5 30 0 100 10 +NUM MODE_NAME SCLK_UP_HYST SCLK_DOWN_HYST SCLK_ACTIVE_LEVEL MCLK_UP_HYST MCLK_DOWN_HYST MCLK_ACTIVE_LEVEL + 0 3D_FULL_SCREEN: 0 100 30 0 100 10 + 1 POWER_SAVING *: 10 0 30 0 100 10 + 2 VIDEO: - - - 10 16 31 + 3 VR: 0 11 50 0 100 10 + 4 COMPUTE: 0 5 30 - - - + 5 CUSTOM: - - - - - - + +Reviewed-by: Evan Quan <evan.quan@amd.com> +Acked-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> +--- + drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 52 +++++++++++------------- + drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h | 1 - + 2 files changed, 23 insertions(+), 30 deletions(-) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +index 5d53a63..2fa9531 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +@@ -75,12 +75,13 @@ + #define PCIE_BUS_CLK 10000 + #define TCLK (PCIE_BUS_CLK / 10) + +-static const struct profile_mode_setting smu7_profiling[5] = ++static const struct profile_mode_setting smu7_profiling[6] = + {{1, 0, 100, 30, 1, 0, 100, 10}, + {1, 10, 0, 30, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 10, 16, 31}, + {1, 0, 11, 50, 1, 0, 100, 10}, + {1, 0, 5, 30, 0, 0, 0, 0}, ++ {0, 0, 0, 0, 0, 0, 0, 0}, + }; + + /** Values for the CG_THERMAL_CTRL::DPM_EVENT_SRC field. */ +@@ -4828,6 +4829,17 @@ static int smu7_get_power_profile_mode(struct pp_hwmgr *hwmgr, char *buf) + len = sizeof(smu7_profiling) / sizeof(struct profile_mode_setting); + + for (i = 0; i < len; i++) { ++ if (i == hwmgr->power_profile_mode) { ++ size += sprintf(buf + size, "%3d %14s %s: %8d %16d %16d %16d %16d %16d\n", ++ i, profile_name[i], "*", ++ data->current_profile_setting.sclk_up_hyst, ++ data->current_profile_setting.sclk_down_hyst, ++ data->current_profile_setting.sclk_activity, ++ data->current_profile_setting.mclk_up_hyst, ++ data->current_profile_setting.mclk_down_hyst, ++ data->current_profile_setting.mclk_activity); ++ continue; ++ } + if (smu7_profiling[i].bupdate_sclk) + size += sprintf(buf + size, "%3d %16s: %8d %16d %16d ", + i, profile_name[i], smu7_profiling[i].sclk_up_hyst, +@@ -4847,24 +4859,6 @@ static int smu7_get_power_profile_mode(struct pp_hwmgr *hwmgr, char *buf) + "-", "-", "-"); + } + +- size += sprintf(buf + size, "%3d %16s: %8d %16d %16d %16d %16d %16d\n", +- i, profile_name[i], +- data->custom_profile_setting.sclk_up_hyst, +- data->custom_profile_setting.sclk_down_hyst, +- data->custom_profile_setting.sclk_activity, +- data->custom_profile_setting.mclk_up_hyst, +- data->custom_profile_setting.mclk_down_hyst, +- data->custom_profile_setting.mclk_activity); +- +- size += sprintf(buf + size, "%3s %16s: %8d %16d %16d %16d %16d %16d\n", +- "*", "CURRENT", +- data->current_profile_setting.sclk_up_hyst, +- data->current_profile_setting.sclk_down_hyst, +- data->current_profile_setting.sclk_activity, +- data->current_profile_setting.mclk_up_hyst, +- data->current_profile_setting.mclk_down_hyst, +- data->current_profile_setting.mclk_activity); +- + return size; + } + +@@ -4903,16 +4897,16 @@ static int smu7_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, uint + if (size < 8) + return -EINVAL; + +- data->custom_profile_setting.bupdate_sclk = input[0]; +- data->custom_profile_setting.sclk_up_hyst = input[1]; +- data->custom_profile_setting.sclk_down_hyst = input[2]; +- data->custom_profile_setting.sclk_activity = input[3]; +- data->custom_profile_setting.bupdate_mclk = input[4]; +- data->custom_profile_setting.mclk_up_hyst = input[5]; +- data->custom_profile_setting.mclk_down_hyst = input[6]; +- data->custom_profile_setting.mclk_activity = input[7]; +- if (!smum_update_dpm_settings(hwmgr, &data->custom_profile_setting)) { +- memcpy(&data->current_profile_setting, &data->custom_profile_setting, sizeof(struct profile_mode_setting)); ++ tmp.bupdate_sclk = input[0]; ++ tmp.sclk_up_hyst = input[1]; ++ tmp.sclk_down_hyst = input[2]; ++ tmp.sclk_activity = input[3]; ++ tmp.bupdate_mclk = input[4]; ++ tmp.mclk_up_hyst = input[5]; ++ tmp.mclk_down_hyst = input[6]; ++ tmp.mclk_activity = input[7]; ++ if (!smum_update_dpm_settings(hwmgr, &tmp)) { ++ memcpy(&data->current_profile_setting, &tmp, sizeof(struct profile_mode_setting)); + hwmgr->power_profile_mode = mode; + } + break; +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h +index 51a776e..c91e75d 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.h +@@ -327,7 +327,6 @@ struct smu7_hwmgr { + uint16_t mem_latency_high; + uint16_t mem_latency_low; + uint32_t vr_config; +- struct profile_mode_setting custom_profile_setting; + struct profile_mode_setting current_profile_setting; + }; + +-- +2.7.4 + |