From 46905fb85ec7c6c4013a0a94dabbf454a9780b5e Mon Sep 17 00:00:00 2001 From: Lijo Lazar Date: Wed, 26 Nov 2025 12:33:52 +0530 Subject: [PATCH] drm/amd/pm: Use emit_clk_levels in vangogh Move to emit_clk_levels from print_clk_levels Signed-off-by: Lijo Lazar Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher --- .../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 9626da2dba584..34b3f8680a2cc 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.47.3