aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/4082-drm-amd-pp-Refine-the-output-of-pp_power_profile_mod.patch
diff options
context:
space:
mode:
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.patch142
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
+