Add p2s table support for a new revision of SMUv13.0.6.

Signed-off-by: Lijo Lazar <lijo.la...@amd.com>
Reviewed-by: Hawking Zhang <hawking.zh...@amd.com>
Reviewed-by: Asad Kamal <asad.ka...@amd.com>
---
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
index 7cea0862dcbb..ece1ffc1e56d 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
@@ -121,6 +121,7 @@ struct mca_ras_info {
 
 #define P2S_TABLE_ID_A 0x50325341
 #define P2S_TABLE_ID_X 0x50325358
+#define P2S_TABLE_ID_3 0x50325303
 
 // clang-format off
 static const struct cmn2asic_msg_mapping 
smu_v13_0_6_message_map[SMU_MSG_MAX_COUNT] = {
@@ -279,14 +280,18 @@ static int smu_v13_0_6_init_microcode(struct smu_context 
*smu)
        struct amdgpu_device *adev = smu->adev;
        uint32_t p2s_table_id = P2S_TABLE_ID_A;
        int ret = 0, i, p2stable_count;
+       int var = (adev->pdev->device & 0xF);
        char ucode_prefix[15];
 
        /* No need to load P2S tables in IOV mode */
        if (amdgpu_sriov_vf(adev))
                return 0;
 
-       if (!(adev->flags & AMD_IS_APU))
+       if (!(adev->flags & AMD_IS_APU)) {
                p2s_table_id = P2S_TABLE_ID_X;
+               if (var == 0x5)
+                       p2s_table_id = P2S_TABLE_ID_3;
+       }
 
        amdgpu_ucode_ip_version_decode(adev, MP1_HWIP, ucode_prefix,
                                       sizeof(ucode_prefix));
-- 
2.25.1

Reply via email to