Move to emit_clk_levels from print_clk_levels
Signed-off-by: Lijo Lazar <[email protected]>
---
.../gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 39 ++++++++++---------
1 file changed, 20 insertions(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
index 9626da2dba58..34b3f8680a2c 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
@@ -559,13 +559,14 @@ static int vangogh_get_dpm_clk_limited(struct smu_context
*smu, enum smu_clk_typ
return 0;
}
-static int vangogh_print_legacy_clk_levels(struct smu_context *smu,
- enum smu_clk_type clk_type, char *buf)
+static int vangogh_emit_legacy_clk_levels(struct smu_context *smu,
+ enum smu_clk_type clk_type, char
*buf,
+ int *offset)
{
+ int i, idx, size = *offset, ret = 0, start_offset = *offset;
DpmClocks_t *clk_table = smu->smu_table.clocks_table;
SmuMetrics_legacy_t metrics;
struct smu_dpm_context *smu_dpm_ctx = &(smu->smu_dpm);
- int i, idx, size = 0, ret = 0, start_offset = 0;
uint32_t cur_value = 0, value = 0, count = 0;
bool cur_value_match_level = false;
@@ -575,9 +576,6 @@ static int vangogh_print_legacy_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_SCLK:
if (smu_dpm_ctx->dpm_level == AMD_DPM_FORCED_LEVEL_MANUAL) {
@@ -659,15 +657,18 @@ static int vangogh_print_legacy_clk_levels(struct
smu_context *smu,
break;
}
- return size - start_offset;
+ *offset += size - start_offset;
+
+ return 0;
}
-static int vangogh_print_clk_levels(struct smu_context *smu,
- enum smu_clk_type clk_type, char *buf)
+static int vangogh_emit_clk_levels(struct smu_context *smu,
+ enum smu_clk_type clk_type, char *buf,
+ int *offset)
{
+ int i, idx, size = *offset, ret = 0, start_offset = *offset;
DpmClocks_t *clk_table = smu->smu_table.clocks_table;
SmuMetrics_t metrics;
- int i, idx, size = 0, ret = 0, start_offset = 0;
uint32_t cur_value = 0, value = 0, count = 0;
bool cur_value_match_level = false;
uint32_t min, max;
@@ -678,9 +679,6 @@ static int vangogh_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_SCLK:
size += sysfs_emit_at(buf, size, "%s:\n", "OD_SCLK");
@@ -781,18 +779,21 @@ static int vangogh_print_clk_levels(struct smu_context
*smu,
break;
}
- return size - start_offset;
+ *offset += size - start_offset;
+
+ return 0;
}
-static int vangogh_common_print_clk_levels(struct smu_context *smu,
- enum smu_clk_type clk_type, char *buf)
+static int vangogh_common_emit_clk_levels(struct smu_context *smu,
+ enum smu_clk_type clk_type, char
*buf,
+ int *offset)
{
int ret = 0;
if (smu->smc_fw_if_version < 0x3)
- ret = vangogh_print_legacy_clk_levels(smu, clk_type, buf);
+ ret = vangogh_emit_legacy_clk_levels(smu, clk_type, buf,
offset);
else
- ret = vangogh_print_clk_levels(smu, clk_type, buf);
+ ret = vangogh_emit_clk_levels(smu, clk_type, buf, offset);
return ret;
}
@@ -2524,7 +2525,7 @@ static const struct pptable_funcs vangogh_ppt_funcs = {
.interrupt_work = smu_v11_0_interrupt_work,
.get_gpu_metrics = vangogh_common_get_gpu_metrics,
.od_edit_dpm_table = vangogh_od_edit_dpm_table,
- .print_clk_levels = vangogh_common_print_clk_levels,
+ .emit_clk_levels = vangogh_common_emit_clk_levels,
.set_default_dpm_table = vangogh_set_default_dpm_tables,
.set_fine_grain_gfx_freq_parameters =
vangogh_set_fine_grain_gfx_freq_parameters,
.notify_rlc_state = vangogh_notify_rlc_state,
--
2.49.0