Commit 7acd7ab0 authored by Jack Xiao's avatar Jack Xiao Committed by Alex Deucher
Browse files

drm/amdgpu/mes11: fix to unmap legacy queue



MES fw updated to support unmapping legacy gfx/compute queue.

Signed-off-by: default avatarJack Xiao <Jack.Xiao@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b278b738
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -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 =
+5 −1
Original line number Diff line number Diff line
@@ -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];