diff options
Diffstat (limited to 'drivers/gpu/drm/tegra/drm.c')
-rw-r--r-- | drivers/gpu/drm/tegra/drm.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c index 9a1e34e48f64..81f86a67c10d 100644 --- a/drivers/gpu/drm/tegra/drm.c +++ b/drivers/gpu/drm/tegra/drm.c | |||
@@ -451,18 +451,6 @@ fail: | |||
451 | 451 | ||
452 | 452 | ||
453 | #ifdef CONFIG_DRM_TEGRA_STAGING | 453 | #ifdef CONFIG_DRM_TEGRA_STAGING |
454 | static struct tegra_drm_context * | ||
455 | tegra_drm_file_get_context(struct tegra_drm_file *file, u32 id) | ||
456 | { | ||
457 | struct tegra_drm_context *context; | ||
458 | |||
459 | mutex_lock(&file->lock); | ||
460 | context = idr_find(&file->contexts, id); | ||
461 | mutex_unlock(&file->lock); | ||
462 | |||
463 | return context; | ||
464 | } | ||
465 | |||
466 | static int tegra_gem_create(struct drm_device *drm, void *data, | 454 | static int tegra_gem_create(struct drm_device *drm, void *data, |
467 | struct drm_file *file) | 455 | struct drm_file *file) |
468 | { | 456 | { |
@@ -551,7 +539,7 @@ static int tegra_client_open(struct tegra_drm_file *fpriv, | |||
551 | if (err < 0) | 539 | if (err < 0) |
552 | return err; | 540 | return err; |
553 | 541 | ||
554 | err = idr_alloc(&fpriv->contexts, context, 0, 0, GFP_KERNEL); | 542 | err = idr_alloc(&fpriv->contexts, context, 1, 0, GFP_KERNEL); |
555 | if (err < 0) { | 543 | if (err < 0) { |
556 | client->ops->close_channel(context); | 544 | client->ops->close_channel(context); |
557 | return err; | 545 | return err; |
@@ -606,7 +594,7 @@ static int tegra_close_channel(struct drm_device *drm, void *data, | |||
606 | 594 | ||
607 | mutex_lock(&fpriv->lock); | 595 | mutex_lock(&fpriv->lock); |
608 | 596 | ||
609 | context = tegra_drm_file_get_context(fpriv, args->context); | 597 | context = idr_find(&fpriv->contexts, args->context); |
610 | if (!context) { | 598 | if (!context) { |
611 | err = -EINVAL; | 599 | err = -EINVAL; |
612 | goto unlock; | 600 | goto unlock; |
@@ -631,7 +619,7 @@ static int tegra_get_syncpt(struct drm_device *drm, void *data, | |||
631 | 619 | ||
632 | mutex_lock(&fpriv->lock); | 620 | mutex_lock(&fpriv->lock); |
633 | 621 | ||
634 | context = tegra_drm_file_get_context(fpriv, args->context); | 622 | context = idr_find(&fpriv->contexts, args->context); |
635 | if (!context) { | 623 | if (!context) { |
636 | err = -ENODEV; | 624 | err = -ENODEV; |
637 | goto unlock; | 625 | goto unlock; |
@@ -660,7 +648,7 @@ static int tegra_submit(struct drm_device *drm, void *data, | |||
660 | 648 | ||
661 | mutex_lock(&fpriv->lock); | 649 | mutex_lock(&fpriv->lock); |
662 | 650 | ||
663 | context = tegra_drm_file_get_context(fpriv, args->context); | 651 | context = idr_find(&fpriv->contexts, args->context); |
664 | if (!context) { | 652 | if (!context) { |
665 | err = -ENODEV; | 653 | err = -ENODEV; |
666 | goto unlock; | 654 | goto unlock; |
@@ -685,7 +673,7 @@ static int tegra_get_syncpt_base(struct drm_device *drm, void *data, | |||
685 | 673 | ||
686 | mutex_lock(&fpriv->lock); | 674 | mutex_lock(&fpriv->lock); |
687 | 675 | ||
688 | context = tegra_drm_file_get_context(fpriv, args->context); | 676 | context = idr_find(&fpriv->contexts, args->context); |
689 | if (!context) { | 677 | if (!context) { |
690 | err = -ENODEV; | 678 | err = -ENODEV; |
691 | goto unlock; | 679 | goto unlock; |