Printing the other clock types should not be conditioned on being able
to print OD_SCLK. Some GPUs currently have limited capability of only
printing a subset of these.

Since this condition was introduced in v5.18-rc1, reading from
`pp_od_clk_voltage` has been returning empty on the Asus ROG Strix G15
(2021).

Fixes: 79c65f3fcbb1 ("drm/amd/pm: do not expose power implementation details to 
amdgpu_pm.c")
---
 drivers/gpu/drm/amd/pm/amdgpu_pm.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c 
b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 236657eece47..9d364bbc78e1 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -869,13 +869,11 @@ static ssize_t amdgpu_get_pp_od_clk_voltage(struct device 
*dev,
        }
        if (ret == -ENOENT) {
                size = amdgpu_dpm_print_clock_levels(adev, OD_SCLK, buf);
-               if (size > 0) {
-                       size += amdgpu_dpm_print_clock_levels(adev, OD_MCLK, 
buf + size);
-                       size += amdgpu_dpm_print_clock_levels(adev, 
OD_VDDC_CURVE, buf + size);
-                       size += amdgpu_dpm_print_clock_levels(adev, 
OD_VDDGFX_OFFSET, buf + size);
-                       size += amdgpu_dpm_print_clock_levels(adev, OD_RANGE, 
buf + size);
-                       size += amdgpu_dpm_print_clock_levels(adev, OD_CCLK, 
buf + size);
-               }
+               size += amdgpu_dpm_print_clock_levels(adev, OD_MCLK, buf + 
size);
+               size += amdgpu_dpm_print_clock_levels(adev, OD_VDDC_CURVE, buf 
+ size);
+               size += amdgpu_dpm_print_clock_levels(adev, OD_VDDGFX_OFFSET, 
buf + size);
+               size += amdgpu_dpm_print_clock_levels(adev, OD_RANGE, buf + 
size);
+               size += amdgpu_dpm_print_clock_levels(adev, OD_CCLK, buf + 
size);
        }
 
        if (size == 0)
-- 
2.30.2

Reply via email to