{
        uint64_t mqd_addr = amdgpu_bo_gpu_offset(ring->mqd_obj);
        uint64_t wptr_addr = ring->wptr_gpu_addr;
-       uint32_t eng_sel = 0;
+       uint32_t me = 0, eng_sel = 0;
 
        switch (ring->funcs->type) {
        case AMDGPU_RING_TYPE_COMPUTE:
+               me = 1;
                eng_sel = 0;
                break;
        case AMDGPU_RING_TYPE_GFX:
+               me = 0;
                eng_sel = 4;
                break;
        case AMDGPU_RING_TYPE_MES:
+               me = 2;
                eng_sel = 5;
                break;
        default:
                          PACKET3_MAP_QUEUES_VMID(0) | /* VMID */
                          PACKET3_MAP_QUEUES_QUEUE(ring->queue) |
                          PACKET3_MAP_QUEUES_PIPE(ring->pipe) |
-                         PACKET3_MAP_QUEUES_ME((ring->me == 1 ? 0 : 1)) |
+                         PACKET3_MAP_QUEUES_ME((me)) |
                          PACKET3_MAP_QUEUES_QUEUE_TYPE(0) | /*queue_type: normal compute queue */
                          PACKET3_MAP_QUEUES_ALLOC_FORMAT(0) | /* alloc format: all_on_one_pipe */
                          PACKET3_MAP_QUEUES_ENGINE_SEL(eng_sel) |