Move to emit_clk_levels from print_clk_levels
Signed-off-by: Lijo Lazar <[email protected]>
---
.../gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 52 +++++++++----------
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
index eaa9ea162f16..45c0afb47c51 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
@@ -491,11 +491,12 @@ static int
renoir_set_fine_grain_gfx_freq_parameters(struct smu_context *smu)
return 0;
}
-static int renoir_print_clk_levels(struct smu_context *smu,
- enum smu_clk_type clk_type, char *buf)
+static int renoir_emit_clk_levels(struct smu_context *smu,
+ enum smu_clk_type clk_type, char *buf,
+ int *offset)
{
- int i, idx, size = 0, ret = 0, start_offset = 0;
uint32_t cur_value = 0, value = 0, count = 0, min = 0, max = 0;
+ int i, idx, size = *offset, ret = 0, start_offset = *offset;
SmuMetrics_t metrics;
bool cur_value_match_level = false;
@@ -505,9 +506,6 @@ static int renoir_print_clk_levels(struct smu_context *smu,
if (ret)
return ret;
- smu_cmn_get_sysfs_buf(&buf, &size);
- start_offset = size;
-
switch (clk_type) {
case SMU_OD_RANGE:
ret = smu_cmn_send_smc_msg_with_param(smu,
@@ -534,24 +532,24 @@ static int renoir_print_clk_levels(struct smu_context
*smu,
/* retirve table returned paramters unit is MHz */
cur_value = metrics.ClockFrequency[CLOCK_GFXCLK];
ret = renoir_get_dpm_ultimate_freq(smu, SMU_GFXCLK, &min, &max);
- if (!ret) {
- /* driver only know min/max gfx_clk, Add level 1 for
all other gfx clks */
- if (cur_value == max)
- i = 2;
- else if (cur_value == min)
- i = 0;
- else
- i = 1;
-
- size += sysfs_emit_at(buf, size, "0: %uMhz %s\n", min,
- i == 0 ? "*" : "");
- size += sysfs_emit_at(buf, size, "1: %uMhz %s\n",
- i == 1 ? cur_value :
RENOIR_UMD_PSTATE_GFXCLK,
- i == 1 ? "*" : "");
- size += sysfs_emit_at(buf, size, "2: %uMhz %s\n", max,
- i == 2 ? "*" : "");
- }
- return size - start_offset;
+ if (ret)
+ return ret;
+ /* driver only know min/max gfx_clk, Add level 1 for all other
gfx clks */
+ if (cur_value == max)
+ i = 2;
+ else if (cur_value == min)
+ i = 0;
+ else
+ i = 1;
+ size += sysfs_emit_at(buf, size, "0: %uMhz %s\n", min,
+ i == 0 ? "*" : "");
+ size += sysfs_emit_at(buf, size, "1: %uMhz %s\n",
+ i == 1 ? cur_value :
+ RENOIR_UMD_PSTATE_GFXCLK,
+ i == 1 ? "*" : "");
+ size += sysfs_emit_at(buf, size, "2: %uMhz %s\n", max,
+ i == 2 ? "*" : "");
+ break;
case SMU_SOCCLK:
count = NUM_SOCCLK_DPM_LEVELS;
cur_value = metrics.ClockFrequency[CLOCK_SOCCLK];
@@ -608,7 +606,9 @@ static int renoir_print_clk_levels(struct smu_context *smu,
break;
}
- return size - start_offset;
+ *offset += size - start_offset;
+
+ return 0;
}
static enum amd_pm_state_type renoir_get_current_power_state(struct
smu_context *smu)
@@ -1450,7 +1450,7 @@ static int renoir_get_enabled_mask(struct smu_context
*smu,
static const struct pptable_funcs renoir_ppt_funcs = {
.set_power_state = NULL,
- .print_clk_levels = renoir_print_clk_levels,
+ .emit_clk_levels = renoir_emit_clk_levels,
.get_current_power_state = renoir_get_current_power_state,
.dpm_set_vcn_enable = renoir_dpm_set_vcn_enable,
.dpm_set_jpeg_enable = renoir_dpm_set_jpeg_enable,
--
2.49.0