drm/amdgpu: Add umc channel index mapping table for umc_v8_10
authorYiPeng Chai <YiPeng.Chai@amd.com>
Tue, 27 Sep 2022 03:22:36 +0000 (11:22 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Nov 2022 18:35:15 +0000 (13:35 -0500)
Add umc channel index mapping table for umc_v8_10.

Signed-off-by: YiPeng Chai <YiPeng.Chai@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
drivers/gpu/drm/amd/amdgpu/umc_v8_10.c
drivers/gpu/drm/amd/amdgpu/umc_v8_10.h

index 16f52049d9863b28257c9f417e760f376eed3dea..96e52ec0fb69e83f8114f70a643ed7b25f0dddb6 100644 (file)
@@ -558,7 +558,10 @@ static void gmc_v11_0_set_umc_funcs(struct amdgpu_device *adev)
                adev->umc.node_inst_num = adev->gmc.num_umc;
                adev->umc.max_ras_err_cnt_per_query = UMC_V8_10_TOTAL_CHANNEL_NUM(adev);
                adev->umc.channel_offs = UMC_V8_10_PER_CHANNEL_OFFSET;
-               adev->umc.channel_idx_tbl = &umc_v8_10_channel_idx_tbl[0][0][0];
+               if (adev->umc.node_inst_num == 4)
+                       adev->umc.channel_idx_tbl = &umc_v8_10_channel_idx_tbl_ext0[0][0][0];
+               else
+                       adev->umc.channel_idx_tbl = &umc_v8_10_channel_idx_tbl[0][0][0];
                adev->umc.ras = &umc_v8_10_ras;
                break;
        case IP_VERSION(8, 11, 0):
index 91235df54e22bb45da27847319144e264ef95d5c..b7da4528cf0a48f759b7648e2739b87182894706 100644 (file)
@@ -45,6 +45,16 @@ const struct channelnum_map_colbit umc_v8_10_channelnum_map_colbit_table[] = {
        {6,  11},
 };
 
+const uint32_t
+       umc_v8_10_channel_idx_tbl_ext0[]
+                               [UMC_V8_10_UMC_INSTANCE_NUM]
+                               [UMC_V8_10_CHANNEL_INSTANCE_NUM] = {
+          {{1,   5}, {7,  3}},
+          {{14, 15}, {13, 12}},
+          {{10, 11}, {9,  8}},
+          {{6,   2}, {0,  4}}
+       };
+
 const uint32_t
        umc_v8_10_channel_idx_tbl[]
                                [UMC_V8_10_UMC_INSTANCE_NUM]
index 849ede88e111b84068fda6b7139dcb1923ed5e85..25eaf4af5fcf4b510f253d8ef7dcb725baa3b67f 100644 (file)
@@ -66,5 +66,9 @@ extern const uint32_t
                                [UMC_V8_10_UMC_INSTANCE_NUM]
                                [UMC_V8_10_CHANNEL_INSTANCE_NUM];
 
+extern const uint32_t
+       umc_v8_10_channel_idx_tbl_ext0[]
+                               [UMC_V8_10_UMC_INSTANCE_NUM]
+                               [UMC_V8_10_CHANNEL_INSTANCE_NUM];
 #endif