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: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Jesse.Zhang <Jesse.zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Alex Deucher
2025-02-26 22:29:15 -05:00
parent 3d0a402e7c
commit a83be6e479

View File

@@ -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;