Do you expect priority level in MES11 12 and probably 13 too ? If they are same then we should be using the same conversion function for all versions of MES. For now its fine.
Reviewed-by: Sunil Khatri <sunil.kha...@amd.com>

On 4/11/2025 12:23 AM, Alex Deucher wrote:
Convert driver priority levels to MES11 priority levels.
At the moment they are the same, but they may not always
be.

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
  drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 21 +++++++++++++++++++--
  1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c 
b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
index 06b51867c9aac..b39a538cfc4e4 100644
--- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
@@ -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;

Reply via email to