Commit a83be6e4 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/mes12: add conversion for priority levels



Convert driver priority levels to MES11 priority levels.
At the moment they are the same, but they may not always
be.

Reviewed-by: default avatarSunil Khatri <sunil.khatri@amd.com>
Reviewed-by: default avatarJesse.Zhang <Jesse.zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 3d0a402e
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -274,6 +274,23 @@ static int convert_to_mes_queue_type(int queue_type)
	return -1;
}

static int convert_to_mes_priority_level(int priority_level)
{
	switch (priority_level) {
	case AMDGPU_MES_PRIORITY_LEVEL_LOW:
		return AMD_PRIORITY_LEVEL_LOW;
	case AMDGPU_MES_PRIORITY_LEVEL_NORMAL:
	default:
		return AMD_PRIORITY_LEVEL_NORMAL;
	case AMDGPU_MES_PRIORITY_LEVEL_MEDIUM:
		return AMD_PRIORITY_LEVEL_MEDIUM;
	case AMDGPU_MES_PRIORITY_LEVEL_HIGH:
		return AMD_PRIORITY_LEVEL_HIGH;
	case AMDGPU_MES_PRIORITY_LEVEL_REALTIME:
		return AMD_PRIORITY_LEVEL_REALTIME;
	}
}

static int mes_v12_0_add_hw_queue(struct amdgpu_mes *mes,
				  struct mes_add_queue_input *input)
{
@@ -297,9 +314,9 @@ static int mes_v12_0_add_hw_queue(struct amdgpu_mes *mes,
	mes_add_queue_pkt.gang_quantum = input->gang_quantum;
	mes_add_queue_pkt.gang_context_addr = input->gang_context_addr;
	mes_add_queue_pkt.inprocess_gang_priority =
		input->inprocess_gang_priority;
		convert_to_mes_priority_level(input->inprocess_gang_priority);
	mes_add_queue_pkt.gang_global_priority_level =
		input->gang_global_priority_level;
		convert_to_mes_priority_level(input->gang_global_priority_level);
	mes_add_queue_pkt.doorbell_offset = input->doorbell_offset;
	mes_add_queue_pkt.mqd_addr = input->mqd_addr;