]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/pm: fix smu v13 soft clock frequency setting issue
authorYang Wang <kevinyang.wang@amd.com>
Wed, 21 Jan 2026 03:04:06 +0000 (11:04 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 27 Jan 2026 23:24:00 +0000 (18:24 -0500)
v1:
resolve the issue where some freq frequencies cannot be set correctly
due to insufficient floating-point precision.

v2:
patch this convert on 'max' value only.

Signed-off-by: Yang Wang <kevinyang.wang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 6194f60c707e3878e120adeb36997075664d8429)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c

index 4263798d716b76c54be8cbbfc675cdbca933ffa0..8e592a477c33a11ee19e6201969bcae248b78e83 100644 (file)
@@ -56,6 +56,7 @@
 #define SMUQ10_TO_UINT(x) ((x) >> 10)
 #define SMUQ10_FRAC(x) ((x) & 0x3ff)
 #define SMUQ10_ROUND(x) ((SMUQ10_TO_UINT(x)) + ((SMUQ10_FRAC(x)) >= 0x200))
+#define SMU_V13_SOFT_FREQ_ROUND(x)     ((x) + 1)
 
 extern const int pmfw_decoded_link_speed[5];
 extern const int pmfw_decoded_link_width[7];
index a89075e257174aac3b8721e3db12dcc292d5edb7..2efd914d81e5b8d8752c490a259013eb19838a29 100644 (file)
@@ -1555,6 +1555,7 @@ int smu_v13_0_set_soft_freq_limited_range(struct smu_context *smu,
                return clk_id;
 
        if (max > 0) {
+               max = SMU_V13_SOFT_FREQ_ROUND(max);
                if (automatic)
                        param = (uint32_t)((clk_id << 16) | 0xffff);
                else