]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
Merge tag 'cxl-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_sched.c
index b7d861ed528493d61e51507cf588095b176cc522..e9b45089a28a69eb7738fab4cfcb50abe0eede98 100644 (file)
 #include "amdgpu_sched.h"
 #include "amdgpu_vm.h"
 
-int amdgpu_to_sched_priority(int amdgpu_priority,
-                            enum drm_sched_priority *prio)
-{
-       switch (amdgpu_priority) {
-       case AMDGPU_CTX_PRIORITY_VERY_HIGH:
-               *prio = DRM_SCHED_PRIORITY_HIGH;
-               break;
-       case AMDGPU_CTX_PRIORITY_HIGH:
-               *prio = DRM_SCHED_PRIORITY_HIGH;
-               break;
-       case AMDGPU_CTX_PRIORITY_NORMAL:
-               *prio = DRM_SCHED_PRIORITY_NORMAL;
-               break;
-       case AMDGPU_CTX_PRIORITY_LOW:
-       case AMDGPU_CTX_PRIORITY_VERY_LOW:
-               *prio = DRM_SCHED_PRIORITY_MIN;
-               break;
-       case AMDGPU_CTX_PRIORITY_UNSET:
-               *prio = DRM_SCHED_PRIORITY_UNSET;
-               break;
-       default:
-               WARN(1, "Invalid context priority %d\n", amdgpu_priority);
-               return -EINVAL;
-       }
-
-       return 0;
-}
-
 static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,
                                                  int fd,
-                                                 enum drm_sched_priority priority)
+                                                 int32_t priority)
 {
        struct fd f = fdget(fd);
        struct amdgpu_fpriv *fpriv;
@@ -89,7 +61,7 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,
 static int amdgpu_sched_context_priority_override(struct amdgpu_device *adev,
                                                  int fd,
                                                  unsigned ctx_id,
-                                                 enum drm_sched_priority priority)
+                                                 int32_t priority)
 {
        struct fd f = fdget(fd);
        struct amdgpu_fpriv *fpriv;
@@ -124,7 +96,6 @@ int amdgpu_sched_ioctl(struct drm_device *dev, void *data,
 {
        union drm_amdgpu_sched *args = data;
        struct amdgpu_device *adev = drm_to_adev(dev);
-       enum drm_sched_priority priority;
        int r;
 
        /* First check the op, then the op's argument.
@@ -138,21 +109,22 @@ int amdgpu_sched_ioctl(struct drm_device *dev, void *data,
                return -EINVAL;
        }
 
-       r = amdgpu_to_sched_priority(args->in.priority, &priority);
-       if (r)
-               return r;
+       if (!amdgpu_ctx_priority_is_valid(args->in.priority)) {
+               WARN(1, "Invalid context priority %d\n", args->in.priority);
+               return -EINVAL;
+       }
 
        switch (args->in.op) {
        case AMDGPU_SCHED_OP_PROCESS_PRIORITY_OVERRIDE:
                r = amdgpu_sched_process_priority_override(adev,
                                                           args->in.fd,
-                                                          priority);
+                                                          args->in.priority);
                break;
        case AMDGPU_SCHED_OP_CONTEXT_PRIORITY_OVERRIDE:
                r = amdgpu_sched_context_priority_override(adev,
                                                           args->in.fd,
                                                           args->in.ctx_id,
-                                                          priority);
+                                                          args->in.priority);
                break;
        default:
                /* Impossible.
This page took 0.037004 seconds and 4 git commands to generate.