Lines Matching full:mdp
96 "VPU MDP process failed: %d\n", ret); in mdp_m2m_device_run()
566 struct mdp_dev *mdp = video_get_drvdata(vdev); in mdp_m2m_open() local
568 struct device *dev = &mdp->pdev->dev; in mdp_m2m_open()
571 const struct mdp_limit *limit = mdp->mdp_data->def_limit; in mdp_m2m_open()
577 if (mutex_lock_interruptible(&mdp->m2m_lock)) { in mdp_m2m_open()
582 ret = ida_alloc(&mdp->mdp_ida, GFP_KERNEL); in mdp_m2m_open()
587 ctx->mdp_dev = mdp; in mdp_m2m_open()
600 ctx->m2m_ctx = v4l2_m2m_ctx_init(mdp->m2m_dev, ctx, mdp_m2m_queue_init); in mdp_m2m_open()
609 ret = mdp_frameparam_init(mdp, &ctx->curr_param); in mdp_m2m_open()
611 dev_err(dev, "Failed to initialize mdp parameter\n"); in mdp_m2m_open()
615 mutex_unlock(&mdp->m2m_lock); in mdp_m2m_open()
637 ida_free(&mdp->mdp_ida, ctx->id); in mdp_m2m_open()
639 mutex_unlock(&mdp->m2m_lock); in mdp_m2m_open()
649 struct mdp_dev *mdp = video_drvdata(file); in mdp_m2m_release() local
650 struct device *dev = &mdp->pdev->dev; in mdp_m2m_release()
652 mutex_lock(&mdp->m2m_lock); in mdp_m2m_release()
655 mdp_vpu_put_locked(mdp); in mdp_m2m_release()
660 ida_free(&mdp->mdp_ida, ctx->id); in mdp_m2m_release()
661 mutex_unlock(&mdp->m2m_lock); in mdp_m2m_release()
682 int mdp_m2m_device_register(struct mdp_dev *mdp) in mdp_m2m_device_register() argument
684 struct device *dev = &mdp->pdev->dev; in mdp_m2m_device_register()
687 mdp->m2m_vdev = video_device_alloc(); in mdp_m2m_device_register()
688 if (!mdp->m2m_vdev) { in mdp_m2m_device_register()
693 mdp->m2m_vdev->device_caps = V4L2_CAP_VIDEO_M2M_MPLANE | in mdp_m2m_device_register()
695 mdp->m2m_vdev->fops = &mdp_m2m_fops; in mdp_m2m_device_register()
696 mdp->m2m_vdev->ioctl_ops = &mdp_m2m_ioctl_ops; in mdp_m2m_device_register()
697 mdp->m2m_vdev->release = mdp_video_device_release; in mdp_m2m_device_register()
698 mdp->m2m_vdev->lock = &mdp->m2m_lock; in mdp_m2m_device_register()
699 mdp->m2m_vdev->vfl_dir = VFL_DIR_M2M; in mdp_m2m_device_register()
700 mdp->m2m_vdev->v4l2_dev = &mdp->v4l2_dev; in mdp_m2m_device_register()
701 snprintf(mdp->m2m_vdev->name, sizeof(mdp->m2m_vdev->name), "%s:m2m", in mdp_m2m_device_register()
703 video_set_drvdata(mdp->m2m_vdev, mdp); in mdp_m2m_device_register()
705 mdp->m2m_dev = v4l2_m2m_init(&mdp_m2m_ops); in mdp_m2m_device_register()
706 if (IS_ERR(mdp->m2m_dev)) { in mdp_m2m_device_register()
708 ret = PTR_ERR(mdp->m2m_dev); in mdp_m2m_device_register()
712 ret = video_register_device(mdp->m2m_vdev, VFL_TYPE_VIDEO, -1); in mdp_m2m_device_register()
718 v4l2_info(&mdp->v4l2_dev, "Driver registered as /dev/video%d", in mdp_m2m_device_register()
719 mdp->m2m_vdev->num); in mdp_m2m_device_register()
723 v4l2_m2m_release(mdp->m2m_dev); in mdp_m2m_device_register()
725 video_device_release(mdp->m2m_vdev); in mdp_m2m_device_register()
731 void mdp_m2m_device_unregister(struct mdp_dev *mdp) in mdp_m2m_device_unregister() argument
733 video_unregister_device(mdp->m2m_vdev); in mdp_m2m_device_unregister()