AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Lazar, Lijo" <lijo.lazar@amd.com>
To: Yang Wang <kevinyang.wang@amd.com>, amd-gfx@lists.freedesktop.org
Cc: hawking.zhang@amd.com, alexander.deucher@amd.com
Subject: Re: [PATCH] drm/amd/pm: fix issue of missing '*' on pp_dpm_xxx nodes
Date: Tue, 13 Jan 2026 07:19:34 +0530	[thread overview]
Message-ID: <f2d12450-e4dd-487d-8d33-e482b8a32db3@amd.com> (raw)
In-Reply-To: <03788e07-8f4a-43ca-b455-d852546f0988@amd.com>



On 12-Jan-26 4:53 PM, Lazar, Lijo wrote:
> 
> 
> On 12-Jan-26 3:42 PM, Yang Wang wrote:
>> refine the code to fix '*' missing on pp_dpm_xxx series node.
>>
>> e.g.: missing '*' on navi10 pp_dpm_sclk
>> $ cat /sys/class/drm/card0/device/pp_dpm_sclk
>> 0: 300Mhz
>> 1: 1930Mhz (the symbol of '*' is missing)
>>
>> Fixes: d259c895d622 ("drm/amd/pm: Add a helper to show dpm table")
> 
> This fix doesn't look related. Could you also add the sample values 
> under which the existing logic fails?
> 

Never mind. There is indeed a bug when current clock matches max clock.

Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>

Thanks,
Lijo

> Thanks,
> Lijo
> 
>>
>> Signed-off-by: Yang Wang <kevinyang.wang@amd.com>
>> ---
>>   drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 31 +++++++++++++-------------
>>   1 file changed, 16 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c b/drivers/gpu/drm/ 
>> amd/pm/swsmu/smu_cmn.c
>> index e0a508653b6a..60fc730bf81d 100644
>> --- a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c
>> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c
>> @@ -1210,11 +1210,11 @@ int smu_cmn_print_dpm_clk_levels(struct 
>> smu_context *smu,
>>                    struct smu_dpm_table *dpm_table,
>>                    uint32_t cur_clk, char *buf, int *offset)
>>   {
>> -    uint32_t min_clk, level_index, count;
>> -    uint32_t freq_values[3] = { 0 };
>> +    uint32_t min_clk, max_clk, level_index, count;
>> +    uint32_t freq_values[3];
>> +    int size, lvl, i;
>>       bool is_fine_grained;
>>       bool is_deep_sleep;
>> -    int size, lvl, i;
>>       bool freq_match;
>>       if (!dpm_table || !buf)
>> @@ -1225,6 +1225,7 @@ int smu_cmn_print_dpm_clk_levels(struct 
>> smu_context *smu,
>>       count = dpm_table->count;
>>       is_fine_grained = dpm_table->flags & SMU_DPM_TABLE_FINE_GRAINED;
>>       min_clk = SMU_DPM_TABLE_MIN(dpm_table);
>> +    max_clk = SMU_DPM_TABLE_MAX(dpm_table);
>>       /* Deep sleep - current clock < min_clock/2, TBD: cur_clk = 0 as 
>> GFXOFF */
>>       is_deep_sleep = cur_clk < min_clk / 2;
>> @@ -1245,22 +1246,22 @@ int smu_cmn_print_dpm_clk_levels(struct 
>> smu_context *smu,
>>                             freq_match ? "*" : "");
>>           }
>>       } else {
>> +        count = 2;
>>           freq_values[0] = min_clk;
>> -        freq_values[2] = SMU_DPM_TABLE_MAX(dpm_table);
>> -        freq_values[1] = cur_clk;
>> +        freq_values[1] = max_clk;
>> -        lvl = -1;
>>           if (!is_deep_sleep) {
>> -            lvl = 1;
>> -            if (smu_cmn_freqs_match(cur_clk, freq_values[0]))
>> +            if (smu_cmn_freqs_match(cur_clk, min_clk)) {
>>                   lvl = 0;
>> -            else if (smu_cmn_freqs_match(cur_clk, freq_values[2]))
>> -                lvl = 2;
>> -        }
>> -        count = 3;
>> -        if (lvl != 1) {
>> -            count = 2;
>> -            freq_values[1] = freq_values[2];
>> +            } else if (smu_cmn_freqs_match(cur_clk, max_clk)) {
>> +                lvl = 1;
>> +            } else {
>> +                /* NOTE: use index '1' to show current clock value */
>> +                lvl = 1;
>> +                count = 3;
>> +                freq_values[1] = cur_clk;
>> +                freq_values[2] = max_clk;
>> +            }
>>           }
>>           for (i = 0; i < count; i++) {
> 


      reply	other threads:[~2026-01-13  1:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-12 10:12 [PATCH] drm/amd/pm: fix issue of missing '*' on pp_dpm_xxx nodes Yang Wang
2026-01-12 11:23 ` Lazar, Lijo
2026-01-13  1:49   ` Lazar, Lijo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f2d12450-e4dd-487d-8d33-e482b8a32db3@amd.com \
    --to=lijo.lazar@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=hawking.zhang@amd.com \
    --cc=kevinyang.wang@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox