On 10/13/2021 8:40 AM, Luben Tuikov wrote:
Some ASIC support low-power functionality for the whole ASIC or just
an IP block. When in such low-power mode, some sysfs interfaces would
report a frequency of 0, e.g.,
$cat /sys/class/drm/card0/device/pp_dpm_sclk
0: 500Mhz
1: 0Mhz *
2: 2200Mhz
$_
An operating frequency of 0 MHz doesn't make sense, and this interface
is designed to report only operating clock frequencies, i.e. non-zero,
and possibly the current one.
When in this low-power state, round to the smallest
operating frequency, for this interface, as follows,
Would rather avoid this -
1) It is manipulating FW reported value. If at all there is an uncaught
issue in FW reporting of frequency values, that is masked here.
2) Otherwise, if 0MHz is described as GFX power gated case, this
provides a convenient interface to check if GFX is power gated.
If seeing a '0' is not pleasing, consider changing to something like
"NA" - not available (frequency cannot be fetched at the moment).
Thanks,
Lijo
$cat /sys/class/drm/card0/device/pp_dpm_sclk
0: 500Mhz *
1: 2200Mhz
$_
Luben Tuikov (5):
drm/amd/pm: Slight function rename
drm/amd/pm: Rename cur_value to curr_value
drm/amd/pm: Rename freq_values --> freq_value
dpm/amd/pm: Sienna: 0 MHz is not a current clock frequency
dpm/amd/pm: Navi10: 0 MHz is not a current clock frequency
.../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 60 +++++++++------
.../amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 73 ++++++++++++-------
2 files changed, 86 insertions(+), 47 deletions(-)