drm/amd/pm: Fix esm reg mask use to get pcie speed
authorAsad Kamal <asad.kamal@amd.com>
Wed, 28 Feb 2024 04:24:15 +0000 (12:24 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 28 Feb 2024 22:10:00 +0000 (17:10 -0500)
Fix mask used for esm ctrl register to get pcie link
speed on smu_v11_0_3, smu_v13_0_2 & smu_v13_0_6

Fixes: 511a95552ec8 ("drm/amd/pm: Add SMU 13.0.6 support")
Fixes: c05d1c401572 ("drm/amd/swsmu: add aldebaran smu13 ip support (v3)")
Fixes: f1c378593153 ("drm/amd/powerplay: add Arcturus support for gpu metrics export")
Signed-off-by: Asad Kamal <asad.kamal@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Le Ma <le.ma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c

index bcad42534da46d780423d636953c40993e7001ac..1d96eb274d72d462de9330166a01d1acc881b2ad 100644 (file)
@@ -2272,8 +2272,8 @@ static uint16_t arcturus_get_current_pcie_link_speed(struct smu_context *smu)
 
        /* TODO: confirm this on real target */
        esm_ctrl = RREG32_PCIE(smnPCIE_ESM_CTRL);
-       if ((esm_ctrl >> 15) & 0x1FFFF)
-               return (uint16_t)(((esm_ctrl >> 8) & 0x3F) + 128);
+       if ((esm_ctrl >> 15) & 0x1)
+               return (uint16_t)(((esm_ctrl >> 8) & 0x7F) + 128);
 
        return smu_v11_0_get_current_pcie_link_speed(smu);
 }
index f122ef49106c24264aecc9376c8b06cffcd25eff..0467864a1aa88c0b8f8d9e6ee881a6d3718e209d 100644 (file)
@@ -1683,8 +1683,8 @@ static int aldebaran_get_current_pcie_link_speed(struct smu_context *smu)
 
        /* TODO: confirm this on real target */
        esm_ctrl = RREG32_PCIE(smnPCIE_ESM_CTRL);
-       if ((esm_ctrl >> 15) & 0x1FFFF)
-               return (((esm_ctrl >> 8) & 0x3F) + 128);
+       if ((esm_ctrl >> 15) & 0x1)
+               return (((esm_ctrl >> 8) & 0x7F) + 128);
 
        return smu_v13_0_get_current_pcie_link_speed(smu);
 }
index 69c64bc6e2dc5e993788070f0c66650084d4fc90..744c84f3029ff99974e10670235bc65bd45d71da 100644 (file)
@@ -2148,8 +2148,8 @@ static int smu_v13_0_6_get_current_pcie_link_speed(struct smu_context *smu)
 
        /* TODO: confirm this on real target */
        esm_ctrl = RREG32_PCIE(smnPCIE_ESM_CTRL);
-       if ((esm_ctrl >> 15) & 0x1FFFF)
-               return (((esm_ctrl >> 8) & 0x3F) + 128);
+       if ((esm_ctrl >> 15) & 0x1)
+               return (((esm_ctrl >> 8) & 0x7F) + 128);
 
        speed_level = (RREG32_PCIE(smnPCIE_LC_SPEED_CNTL) &
                PCIE_LC_SPEED_CNTL__LC_CURRENT_DATA_RATE_MASK)