]> Git Repo - J-linux.git/blobdiff - drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
Merge tag 'pm-5.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[J-linux.git] / drivers / gpu / drm / amd / amdkfd / kfd_process_queue_manager.c
index 4f58e671d39b05c84be5685b3a305e4fc5a1719f..dc00484ff484c8d8478d72e9c92655e3394b056f 100644 (file)
@@ -198,8 +198,26 @@ static int init_user_queue(struct process_queue_manager *pqm,
        (*q)->device = dev;
        (*q)->process = pqm->process;
 
+       if (dev->shared_resources.enable_mes) {
+               retval = amdgpu_amdkfd_alloc_gtt_mem(dev->adev,
+                                               AMDGPU_MES_GANG_CTX_SIZE,
+                                               &(*q)->gang_ctx_bo,
+                                               &(*q)->gang_ctx_gpu_addr,
+                                               &(*q)->gang_ctx_cpu_ptr,
+                                               false);
+               if (retval) {
+                       pr_err("failed to allocate gang context bo\n");
+                       goto cleanup;
+               }
+               memset((*q)->gang_ctx_cpu_ptr, 0, AMDGPU_MES_GANG_CTX_SIZE);
+       }
+
        pr_debug("PQM After init queue");
+       return 0;
 
+cleanup:
+       if (dev->shared_resources.enable_mes)
+               uninit_queue(*q);
        return retval;
 }
 
@@ -418,6 +436,9 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
                        pdd->qpd.num_gws = 0;
                }
 
+               if (dev->shared_resources.enable_mes)
+                       amdgpu_amdkfd_free_gtt_mem(dev->adev,
+                                                  pqn->q->gang_ctx_bo);
                uninit_queue(pqn->q);
        }
 
This page took 0.030356 seconds and 4 git commands to generate.