Move to emit_clk_levels from print_clk_levels
Signed-off-by: Lijo Lazar <[email protected]>
---
.../amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 27 +++++++++----------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
index 774283ac7827..1530a25f7237 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
@@ -1269,8 +1269,9 @@ static void sienna_cichlid_get_od_setting_range(struct
smu_11_0_7_overdrive_tabl
*max = od_table->max[setting];
}
-static int sienna_cichlid_print_clk_levels(struct smu_context *smu,
- enum smu_clk_type clk_type, char *buf)
+static int sienna_cichlid_emit_clk_levels(struct smu_context *smu,
+ enum smu_clk_type clk_type, char *buf,
+ int *offset)
{
struct amdgpu_device *adev = smu->adev;
struct smu_table_context *table_context = &smu->smu_table;
@@ -1281,16 +1282,13 @@ static int sienna_cichlid_print_clk_levels(struct
smu_context *smu,
struct smu_11_0_7_overdrive_table *od_settings = smu->od_settings;
OverDriveTable_t *od_table =
(OverDriveTable_t *)table_context->overdrive_table;
- int i, size = 0, ret = 0, start_offset = 0;
+ int i, size = *offset, ret = 0, start_offset = *offset;
uint32_t cur_value = 0, value = 0, count = 0;
uint32_t freq_values[3] = {0};
uint32_t mark_index = 0;
uint32_t gen_speed, lane_width;
uint32_t min_value, max_value;
- smu_cmn_get_sysfs_buf(&buf, &size);
- start_offset = size;
-
switch (clk_type) {
case SMU_GFXCLK:
case SMU_SCLK:
@@ -1305,17 +1303,17 @@ static int sienna_cichlid_print_clk_levels(struct
smu_context *smu,
case SMU_DCEFCLK:
ret = sienna_cichlid_get_current_clk_freq_by_table(smu,
clk_type, &cur_value);
if (ret)
- goto print_clk_out;
+ return ret;
ret = smu_v11_0_get_dpm_level_count(smu, clk_type, &count);
if (ret)
- goto print_clk_out;
+ return ret;
if (!sienna_cichlid_is_support_fine_grained_dpm(smu, clk_type))
{
for (i = 0; i < count; i++) {
ret = smu_v11_0_get_dpm_freq_by_index(smu,
clk_type, i, &value);
if (ret)
- goto print_clk_out;
+ return ret;
size += sysfs_emit_at(buf, size, "%d: %uMhz
%s\n", i, value,
cur_value == value ? "*" : "");
@@ -1323,10 +1321,10 @@ static int sienna_cichlid_print_clk_levels(struct
smu_context *smu,
} else {
ret = smu_v11_0_get_dpm_freq_by_index(smu, clk_type, 0,
&freq_values[0]);
if (ret)
- goto print_clk_out;
+ return ret;
ret = smu_v11_0_get_dpm_freq_by_index(smu, clk_type,
count - 1, &freq_values[2]);
if (ret)
- goto print_clk_out;
+ return ret;
freq_values[1] = cur_value;
mark_index = cur_value == freq_values[0] ? 0 :
@@ -1434,8 +1432,9 @@ static int sienna_cichlid_print_clk_levels(struct
smu_context *smu,
break;
}
-print_clk_out:
- return size - start_offset;
+ *offset += size - start_offset;
+
+ return 0;
}
static int sienna_cichlid_force_clk_levels(struct smu_context *smu,
@@ -3129,7 +3128,7 @@ static const struct pptable_funcs
sienna_cichlid_ppt_funcs = {
.dpm_set_jpeg_enable = sienna_cichlid_dpm_set_jpeg_enable,
.i2c_init = sienna_cichlid_i2c_control_init,
.i2c_fini = sienna_cichlid_i2c_control_fini,
- .print_clk_levels = sienna_cichlid_print_clk_levels,
+ .emit_clk_levels = sienna_cichlid_emit_clk_levels,
.force_clk_levels = sienna_cichlid_force_clk_levels,
.populate_umd_state_clk = sienna_cichlid_populate_umd_state_clk,
.pre_display_config_changed = sienna_cichlid_pre_display_config_changed,
--
2.49.0