[PATCH 2/2] drm/amd: Allow printing Renoir OD SCLK levels without setting dpm to manual
Mario Limonciello
mario.limonciello at amd.com
Thu Apr 3 18:32:17 UTC 2025
On 3/23/2025 9:53 AM, Mario Limonciello wrote:
> From: Mario Limonciello <mario.limonciello at amd.com>
>
> Several other ASICs allow printing OD SCLK levels without setting DPM
> control to manual. When OD is disabled it will show the range the
> hardware supports. When OD is enabled it will show what values have been
> programmed. Adjust Renoir to work the same.
>
> Reported-by: Vicki Pfau <vi at endrift.com>
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
Ping on this series.
> ---
> .../gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 36 +++++++++----------
> 1 file changed, 16 insertions(+), 20 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 37d82a71a2d7c..93275ff2ca692 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
> @@ -510,28 +510,24 @@ static int renoir_print_clk_levels(struct smu_context *smu,
>
> switch (clk_type) {
> case SMU_OD_RANGE:
> - if (smu_dpm_ctx->dpm_level == AMD_DPM_FORCED_LEVEL_MANUAL) {
> - ret = smu_cmn_send_smc_msg_with_param(smu,
> - SMU_MSG_GetMinGfxclkFrequency,
> - 0, &min);
> - if (ret)
> - return ret;
> - ret = smu_cmn_send_smc_msg_with_param(smu,
> - SMU_MSG_GetMaxGfxclkFrequency,
> - 0, &max);
> - if (ret)
> - return ret;
> - size += sysfs_emit_at(buf, size, "OD_RANGE\nSCLK: %10uMhz %10uMhz\n", min, max);
> - }
> + ret = smu_cmn_send_smc_msg_with_param(smu,
> + SMU_MSG_GetMinGfxclkFrequency,
> + 0, &min);
> + if (ret)
> + return ret;
> + ret = smu_cmn_send_smc_msg_with_param(smu,
> + SMU_MSG_GetMaxGfxclkFrequency,
> + 0, &max);
> + if (ret)
> + return ret;
> + size += sysfs_emit_at(buf, size, "OD_RANGE\nSCLK: %10uMhz %10uMhz\n", min, max);
> break;
> case SMU_OD_SCLK:
> - if (smu_dpm_ctx->dpm_level == AMD_DPM_FORCED_LEVEL_MANUAL) {
> - min = (smu->gfx_actual_hard_min_freq > 0) ? smu->gfx_actual_hard_min_freq : smu->gfx_default_hard_min_freq;
> - max = (smu->gfx_actual_soft_max_freq > 0) ? smu->gfx_actual_soft_max_freq : smu->gfx_default_soft_max_freq;
> - size += sysfs_emit_at(buf, size, "OD_SCLK\n");
> - size += sysfs_emit_at(buf, size, "0:%10uMhz\n", min);
> - size += sysfs_emit_at(buf, size, "1:%10uMhz\n", max);
> - }
> + min = (smu->gfx_actual_hard_min_freq > 0) ? smu->gfx_actual_hard_min_freq : smu->gfx_default_hard_min_freq;
> + max = (smu->gfx_actual_soft_max_freq > 0) ? smu->gfx_actual_soft_max_freq : smu->gfx_default_soft_max_freq;
> + size += sysfs_emit_at(buf, size, "OD_SCLK\n");
> + size += sysfs_emit_at(buf, size, "0:%10uMhz\n", min);
> + size += sysfs_emit_at(buf, size, "1:%10uMhz\n", max);
> break;
> case SMU_GFXCLK:
> case SMU_SCLK:
More information about the amd-gfx
mailing list