From: Mukul Joshi <[email protected]>

On GFX 12.1, pass the xcc id of the master XCC to choose the correct
MES Pipe to send the add_queue/remove_queue requests to MES.

Signed-off-by: Mukul Joshi <[email protected]>
Reviewed-by: Alex Sierra <[email protected]>
Reviewed-by: Michael Chen <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index 1dbdf9465e590..9bc80f8ba7dcd 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -257,6 +257,7 @@ static int add_queue_mes(struct device_queue_manager *dqm, 
struct queue *q,
        queue_input.exclusively_scheduled = q->properties.is_gws;
        queue_input.sh_mem_config_data = qpd->sh_mem_config;
        queue_input.vm_cntx_cntl = qpd->vm_cntx_cntl;
+       queue_input.xcc_id = ffs(dqm->dev->xcc_mask) - 1;
 
        amdgpu_mes_lock(&adev->mes);
        r = adev->mes.funcs->add_hw_queue(&adev->mes, &queue_input);
@@ -287,6 +288,7 @@ static int remove_queue_mes(struct device_queue_manager 
*dqm, struct queue *q,
        memset(&queue_input, 0x0, sizeof(struct mes_remove_queue_input));
        queue_input.doorbell_offset = q->properties.doorbell_off;
        queue_input.gang_context_addr = q->gang_ctx_gpu_addr;
+       queue_input.xcc_id = ffs(dqm->dev->xcc_mask) - 1;
 
        amdgpu_mes_lock(&adev->mes);
        r = adev->mes.funcs->remove_hw_queue(&adev->mes, &queue_input);
-- 
2.52.0

Reply via email to