diff options
author | Jack Xiao <Jack.Xiao@amd.com> | 2022-06-22 12:45:24 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2022-07-05 16:17:13 -0400 |
commit | 7acd7ab0297a37e44df928378f53d4260b25fd2b (patch) | |
tree | 4b77fadf3d47b87847577ceda9235b7c4188d9cf /drivers | |
parent | b278b738c3be4f383796d09ef8fb6e49fee2091f (diff) | |
download | linux-7acd7ab0297a37e44df928378f53d4260b25fd2b.tar.gz |
drm/amdgpu/mes11: fix to unmap legacy queue
MES fw updated to support unmapping legacy gfx/compute queue. Signed-off-by: Jack Xiao <Jack.Xiao@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/include/mes_v11_api_def.h | 6 |
2 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c index 5bdc2babb070..6b07a8b23d67 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 1d37ec2cd737..80dab1146439 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]; |