With Unified MES enabled in gfx12, need separate event log buffer for the
2 MES pipes to avoid data overwrite.

Signed-off-by: Michael Chen <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/mes_v12_0.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c 
b/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
index f50071cf95b9..3daa8862e622 100644
--- a/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
@@ -621,7 +621,7 @@ static int mes_v12_0_set_hw_resources(struct amdgpu_mes 
*mes, int pipe)
 
        if (amdgpu_mes_log_enable) {
                mes_set_hw_res_pkt.enable_mes_event_int_logging = 1;
-               mes_set_hw_res_pkt.event_intr_history_gpu_mc_ptr = 
mes->event_log_gpu_addr;
+               mes_set_hw_res_pkt.event_intr_history_gpu_mc_ptr = 
mes->event_log_gpu_addr + pipe * AMDGPU_MES_LOG_BUFFER_SIZE;
        }
 
        return mes_v12_0_submit_pkt_and_poll_completion(mes, pipe,
@@ -1336,7 +1336,7 @@ static int mes_v12_0_sw_init(struct amdgpu_ip_block 
*ip_block)
        adev->mes.kiq_hw_fini = &mes_v12_0_kiq_hw_fini;
        adev->mes.enable_legacy_queue_map = true;
 
-       adev->mes.event_log_size = AMDGPU_MES_LOG_BUFFER_SIZE;
+       adev->mes.event_log_size = adev->enable_uni_mes ? (AMDGPU_MAX_MES_PIPES 
* AMDGPU_MES_LOG_BUFFER_SIZE) : AMDGPU_MES_LOG_BUFFER_SIZE;
 
        r = amdgpu_mes_init(adev);
        if (r)
-- 
2.34.1

Reply via email to