Some ASICs 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, $cat /sys/class/drm/card0/device/pp_dpm_sclk 0: 500Mhz * 1: 2200Mhz $_ v2: Fix description to reflect change in patch 1--add an 's'. v3: Don't tag a current if current is 0. Luben Tuikov (5): drm/amd/pm: Slight function rename (v2) 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 (v2) dpm/amd/pm: Navi10: 0 MHz is not a current clock frequency (v2) .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 57 ++++++++------ .../amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 74 ++++++++++++------- 2 files changed, 83 insertions(+), 48 deletions(-) base-commit: b81c53cdbe1482b1f4013ba7a41bca2174cde109 -- 2.33.1.558.g2bd2f258f4