]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/mes11: add conversion for priority levels
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 27 Feb 2025 03:27:47 +0000 (22:27 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 21 Apr 2025 14:56:33 +0000 (10:56 -0400)
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>
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c

index f7aa45775eadb62c6907e4c4397c88cc75851129..0a5b7a296f08d3e55c5470fc0eb35a22d9e5fd6c 100644 (file)
@@ -287,6 +287,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_v11_0_add_hw_queue(struct amdgpu_mes *mes,
                                  struct mes_add_queue_input *input)
 {
@@ -310,9 +327,9 @@ static int mes_v11_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;