mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 10:36:49 +07:00
drm/amd/pp: Refine the output of pp_power_profile_mode on VI
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> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
e6a5b9f9ae
commit
639f790223
@ -79,12 +79,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. */
|
||||
@ -4864,6 +4865,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,
|
||||
@ -4883,24 +4895,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;
|
||||
}
|
||||
|
||||
@ -4939,16 +4933,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;
|
||||
|
@ -325,7 +325,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;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user