diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c index 5bdc2babb070b087cb1cae677d1052a7896c28db..6b07a8b23d67157d26d59a1f411208e25bb63ac3 100644 --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c @@ -216,7 +216,7 @@ static int mes_v11_0_unmap_legacy_queue(struct amdgpu_mes *mes, mes_remove_queue_pkt.header.opcode = MES_SCH_API_REMOVE_QUEUE; mes_remove_queue_pkt.header.dwsize = API_FRAME_SIZE_IN_DWORDS; - mes_remove_queue_pkt.doorbell_offset = input->doorbell_offset << 2; + mes_remove_queue_pkt.doorbell_offset = input->doorbell_offset; mes_remove_queue_pkt.gang_context_addr = 0; mes_remove_queue_pkt.pipe_id = input->pipe_id; @@ -228,10 +228,9 @@ static int mes_v11_0_unmap_legacy_queue(struct amdgpu_mes *mes, mes_remove_queue_pkt.tf_data = lower_32_bits(input->trail_fence_data); } else { - if (input->queue_type == AMDGPU_RING_TYPE_GFX) - mes_remove_queue_pkt.unmap_legacy_gfx_queue = 1; - else - mes_remove_queue_pkt.unmap_kiq_utility_queue = 1; + mes_remove_queue_pkt.unmap_legacy_queue = 1; + mes_remove_queue_pkt.queue_type = + convert_to_mes_queue_type(input->queue_type); } mes_remove_queue_pkt.api_status.api_completion_fence_addr = diff --git a/drivers/gpu/drm/amd/include/mes_v11_api_def.h b/drivers/gpu/drm/amd/include/mes_v11_api_def.h index 1d37ec2cd737752c24544c749aa44123f4bbf9f4..80dab1146439e97dc9ad45434729d1fddee658a5 100644 --- a/drivers/gpu/drm/amd/include/mes_v11_api_def.h +++ b/drivers/gpu/drm/amd/include/mes_v11_api_def.h @@ -227,6 +227,7 @@ union MESAPI_SET_HW_RESOURCES { uint32_t uint32_t_all; }; uint32_t oversubscription_timer; + uint64_t doorbell_info; }; uint32_t max_dwords_in_api[API_FRAME_SIZE_IN_DWORDS]; @@ -286,7 +287,8 @@ union MESAPI__REMOVE_QUEUE { uint32_t unmap_legacy_gfx_queue : 1; uint32_t unmap_kiq_utility_queue : 1; uint32_t preempt_legacy_gfx_queue : 1; - uint32_t reserved : 29; + uint32_t unmap_legacy_queue : 1; + uint32_t reserved : 28; }; struct MES_API_STATUS api_status; @@ -295,6 +297,8 @@ union MESAPI__REMOVE_QUEUE { uint64_t tf_addr; uint32_t tf_data; + + enum MES_QUEUE_TYPE queue_type; }; uint32_t max_dwords_in_api[API_FRAME_SIZE_IN_DWORDS];