From: Mukul Joshi Date: Thu, 7 Aug 2025 19:12:41 +0000 (-0400) Subject: drm/amdkfd: Add/remove queues on the correct XCC on GFX 12.1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6ac64eed803d421ae53f280a68771b101000281;p=thirdparty%2Fkernel%2Flinux.git drm/amdkfd: Add/remove queues on the correct XCC on GFX 12.1 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 Reviewed-by: Alex Sierra Reviewed-by: Michael Chen Signed-off-by: Alex Deucher --- 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 1dbdf9465e59..9bc80f8ba7dc 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);