From: Candice Li <[email protected]>

Add ext_umc_mask for the upper half of
adev->umc.active_mask and fill both fields
when building RAS TA init message.

Signed-off-by: Candice Li <[email protected]>
Reviewed-by: Hawking Zhang <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/ras/core/ras_psp.c           | 1 +
 drivers/gpu/drm/amd/ras/core/ras_psp.h           | 1 +
 drivers/gpu/drm/amd/ras/core/ta_if.h             | 1 +
 drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c | 3 ++-
 4 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/ras/core/ras_psp.c 
b/drivers/gpu/drm/amd/ras/core/ras_psp.c
index da49ee79711d9..4835228993181 100644
--- a/drivers/gpu/drm/amd/ras/core/ras_psp.c
+++ b/drivers/gpu/drm/amd/ras/core/ras_psp.c
@@ -515,6 +515,7 @@ static int send_load_ta_fw_cmd(struct ras_core_context 
*ras_core,
        ta_init_flags->nps_mode = ta_ctx->init_param.nps_mode;
        ta_init_flags->active_umc_mask = ta_ctx->init_param.active_umc_mask;
        ta_init_flags->vram_type = ta_ctx->init_param.vram_type;
+       ta_init_flags->ext_umc_mask = ta_ctx->init_param.ext_umc_mask;
 
        /* Setup load ras ta command */
        memset(&psp_load_ta_cmd, 0, sizeof(psp_load_ta_cmd));
diff --git a/drivers/gpu/drm/amd/ras/core/ras_psp.h 
b/drivers/gpu/drm/amd/ras/core/ras_psp.h
index dbc06c85d4aec..f1d32f31a64ee 100644
--- a/drivers/gpu/drm/amd/ras/core/ras_psp.h
+++ b/drivers/gpu/drm/amd/ras/core/ras_psp.h
@@ -54,6 +54,7 @@ struct ras_ta_init_param {
        uint8_t nps_mode;
        uint32_t active_umc_mask;
        uint8_t vram_type;
+       uint32_t ext_umc_mask;
 };
 
 struct gpu_mem_block {
diff --git a/drivers/gpu/drm/amd/ras/core/ta_if.h 
b/drivers/gpu/drm/amd/ras/core/ta_if.h
index 5d4cea459954d..30c058a524db7 100644
--- a/drivers/gpu/drm/amd/ras/core/ta_if.h
+++ b/drivers/gpu/drm/amd/ras/core/ta_if.h
@@ -202,6 +202,7 @@ struct ras_ta_init_flags {
        uint8_t nps_mode;
        uint32_t active_umc_mask;
        uint8_t vram_type;
+       uint32_t ext_umc_mask;
 };
 
 struct ras_ta_mca_addr {
diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c 
b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c
index 9f193cf2ab385..4b9384bc87b38 100644
--- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c
+++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c
@@ -278,8 +278,9 @@ static int amdgpu_ras_mgr_get_ras_ta_init_param(struct 
ras_core_context *ras_cor
        ras_ta_param->xcc_mask = adev->gfx.xcc_mask;
        ras_ta_param->channel_dis_num = hweight32(adev->gmc.m_half_use) * 2;
 
-       ras_ta_param->active_umc_mask = adev->umc.active_mask;
+       ras_ta_param->active_umc_mask = lower_32_bits(adev->umc.active_mask);
        ras_ta_param->vram_type = (uint8_t)adev->gmc.vram_type;
+       ras_ta_param->ext_umc_mask = upper_32_bits(adev->umc.active_mask);
 
        if (!amdgpu_ras_mgr_get_curr_nps_mode(adev, &nps_mode))
                ras_ta_param->nps_mode = nps_mode;
-- 
2.55.0

Reply via email to