drm/msm: Small submitqueue creation cleanup
If we don't have a gpu, there is no need to create a submitqueue, which lets us simplify the error handling and submitqueue creation. Signed-off-by: Rob Clark <robdclark@chromium.org> Acked-by: Christian König <christian.koenig@amd.com> Link: https://lore.kernel.org/r/20210728010632.2633470-3-robdclark@gmail.com Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
parent
375f9a63a6
commit
86c2a0f000
1 changed files with 11 additions and 11 deletions
|
@ -66,6 +66,12 @@ int msm_submitqueue_create(struct drm_device *drm, struct msm_file_private *ctx,
|
||||||
if (!ctx)
|
if (!ctx)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
if (!priv->gpu)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
if (prio >= priv->gpu->nr_rings)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
queue = kzalloc(sizeof(*queue), GFP_KERNEL);
|
queue = kzalloc(sizeof(*queue), GFP_KERNEL);
|
||||||
|
|
||||||
if (!queue)
|
if (!queue)
|
||||||
|
@ -73,15 +79,7 @@ int msm_submitqueue_create(struct drm_device *drm, struct msm_file_private *ctx,
|
||||||
|
|
||||||
kref_init(&queue->ref);
|
kref_init(&queue->ref);
|
||||||
queue->flags = flags;
|
queue->flags = flags;
|
||||||
|
|
||||||
if (priv->gpu) {
|
|
||||||
if (prio >= priv->gpu->nr_rings) {
|
|
||||||
kfree(queue);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
queue->prio = prio;
|
queue->prio = prio;
|
||||||
}
|
|
||||||
|
|
||||||
write_lock(&ctx->queuelock);
|
write_lock(&ctx->queuelock);
|
||||||
|
|
||||||
|
@ -107,12 +105,14 @@ int msm_submitqueue_init(struct drm_device *drm, struct msm_file_private *ctx)
|
||||||
struct msm_drm_private *priv = drm->dev_private;
|
struct msm_drm_private *priv = drm->dev_private;
|
||||||
int default_prio;
|
int default_prio;
|
||||||
|
|
||||||
|
if (!priv->gpu)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Select priority 2 as the "default priority" unless nr_rings is less
|
* Select priority 2 as the "default priority" unless nr_rings is less
|
||||||
* than 2 and then pick the lowest priority
|
* than 2 and then pick the lowest priority
|
||||||
*/
|
*/
|
||||||
default_prio = priv->gpu ?
|
default_prio = clamp_t(uint32_t, 2, 0, priv->gpu->nr_rings - 1);
|
||||||
clamp_t(uint32_t, 2, 0, priv->gpu->nr_rings - 1) : 0;
|
|
||||||
|
|
||||||
INIT_LIST_HEAD(&ctx->submitqueues);
|
INIT_LIST_HEAD(&ctx->submitqueues);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue