]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amdgpu: query core refclk from bios for smu v13
authorHawking Zhang <Hawking.Zhang@amd.com>
Sun, 23 Jan 2022 11:12:30 +0000 (19:12 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 4 May 2022 13:57:35 +0000 (09:57 -0400)
The smu_info structrue for smu v13 is changed that
core_refclk in v31 strucuture is not correct for
smu v13_0_0

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c

index 494ca6a0f47afcb818e0eab7088d1c0a7b735462..63e0293edc5fe6686029a0bb60f5884bce1913b7 100644 (file)
@@ -556,6 +556,7 @@ bool amdgpu_atomfirmware_ras_rom_addr(struct amdgpu_device *adev,
 
 union smu_info {
        struct atom_smu_info_v3_1 v31;
+       struct atom_smu_info_v4_0 v40;
 };
 
 union gfx_info {
@@ -602,7 +603,10 @@ int amdgpu_atomfirmware_get_clock_info(struct amdgpu_device *adev)
                                           data_offset);
 
                /* system clock */
-               spll->reference_freq = le32_to_cpu(smu_info->v31.core_refclk_10khz);
+               if (frev == 3)
+                       spll->reference_freq = le32_to_cpu(smu_info->v31.core_refclk_10khz);
+               else if (frev == 4)
+                       spll->reference_freq = le32_to_cpu(smu_info->v40.core_refclk_10khz);
 
                spll->reference_div = 0;
                spll->min_post_div = 1;