]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/soc21: fix xclk for APUs
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 16 Jan 2026 22:33:05 +0000 (17:33 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 28 Jan 2026 21:34:24 +0000 (16:34 -0500)
The reference clock is supposed to be 100Mhz, but it
appears to actually be slightly lower (99.81Mhz).

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14451
Reviewed-by: Jesse Zhang <Jesse.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 637fee3954d4bd509ea9d95ad1780fc174489860)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/soc21.c

index ad36c96478a8267c8e585ec2dc655175f215df31..25536d89635d351e47994764406ed09875980d82 100644 (file)
@@ -225,7 +225,13 @@ static u32 soc21_get_config_memsize(struct amdgpu_device *adev)
 
 static u32 soc21_get_xclk(struct amdgpu_device *adev)
 {
-       return adev->clock.spll.reference_freq;
+       u32 reference_clock = adev->clock.spll.reference_freq;
+
+       /* reference clock is actually 99.81 Mhz rather than 100 Mhz */
+       if ((adev->flags & AMD_IS_APU) && reference_clock == 10000)
+               return 9981;
+
+       return reference_clock;
 }