diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 44 | 
1 files changed, 8 insertions, 36 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c index b7d861ed5284..e9b45089a28a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c @@ -32,37 +32,9 @@  #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.  |