Lines Matching full:mdp
93 "VPU MDP process failed: %d\n", ret); in mdp_m2m_device_run()
551 struct mdp_dev *mdp = video_get_drvdata(vdev); in mdp_m2m_open() local
553 struct device *dev = &mdp->pdev->dev; in mdp_m2m_open()
556 const struct mdp_limit *limit = mdp->mdp_data->def_limit; in mdp_m2m_open()
562 if (mutex_lock_interruptible(&mdp->m2m_lock)) { in mdp_m2m_open()
567 ret = ida_alloc(&mdp->mdp_ida, GFP_KERNEL); in mdp_m2m_open()
572 ctx->mdp_dev = mdp; in mdp_m2m_open()
585 ctx->m2m_ctx = v4l2_m2m_ctx_init(mdp->m2m_dev, ctx, mdp_m2m_queue_init); in mdp_m2m_open()
594 ret = mdp_frameparam_init(mdp, &ctx->curr_param); in mdp_m2m_open()
596 dev_err(dev, "Failed to initialize mdp parameter\n"); in mdp_m2m_open()
600 mutex_unlock(&mdp->m2m_lock); in mdp_m2m_open()
622 ida_free(&mdp->mdp_ida, ctx->id); in mdp_m2m_open()
624 mutex_unlock(&mdp->m2m_lock); in mdp_m2m_open()
634 struct mdp_dev *mdp = video_drvdata(file); in mdp_m2m_release() local
635 struct device *dev = &mdp->pdev->dev; in mdp_m2m_release()
637 mutex_lock(&mdp->m2m_lock); in mdp_m2m_release()
640 mdp_vpu_put_locked(mdp); in mdp_m2m_release()
645 ida_free(&mdp->mdp_ida, ctx->id); in mdp_m2m_release()
646 mutex_unlock(&mdp->m2m_lock); in mdp_m2m_release()
667 int mdp_m2m_device_register(struct mdp_dev *mdp) in mdp_m2m_device_register() argument
669 struct device *dev = &mdp->pdev->dev; in mdp_m2m_device_register()
672 mdp->m2m_vdev = video_device_alloc(); in mdp_m2m_device_register()
673 if (!mdp->m2m_vdev) { in mdp_m2m_device_register()
678 mdp->m2m_vdev->device_caps = V4L2_CAP_VIDEO_M2M_MPLANE | in mdp_m2m_device_register()
680 mdp->m2m_vdev->fops = &mdp_m2m_fops; in mdp_m2m_device_register()
681 mdp->m2m_vdev->ioctl_ops = &mdp_m2m_ioctl_ops; in mdp_m2m_device_register()
682 mdp->m2m_vdev->release = mdp_video_device_release; in mdp_m2m_device_register()
683 mdp->m2m_vdev->lock = &mdp->m2m_lock; in mdp_m2m_device_register()
684 mdp->m2m_vdev->vfl_dir = VFL_DIR_M2M; in mdp_m2m_device_register()
685 mdp->m2m_vdev->v4l2_dev = &mdp->v4l2_dev; in mdp_m2m_device_register()
686 snprintf(mdp->m2m_vdev->name, sizeof(mdp->m2m_vdev->name), "%s:m2m", in mdp_m2m_device_register()
688 video_set_drvdata(mdp->m2m_vdev, mdp); in mdp_m2m_device_register()
690 mdp->m2m_dev = v4l2_m2m_init(&mdp_m2m_ops); in mdp_m2m_device_register()
691 if (IS_ERR(mdp->m2m_dev)) { in mdp_m2m_device_register()
693 ret = PTR_ERR(mdp->m2m_dev); in mdp_m2m_device_register()
697 ret = video_register_device(mdp->m2m_vdev, VFL_TYPE_VIDEO, -1); in mdp_m2m_device_register()
703 v4l2_info(&mdp->v4l2_dev, "Driver registered as /dev/video%d", in mdp_m2m_device_register()
704 mdp->m2m_vdev->num); in mdp_m2m_device_register()
708 v4l2_m2m_release(mdp->m2m_dev); in mdp_m2m_device_register()
710 video_device_release(mdp->m2m_vdev); in mdp_m2m_device_register()
716 void mdp_m2m_device_unregister(struct mdp_dev *mdp) in mdp_m2m_device_unregister() argument
718 video_unregister_device(mdp->m2m_vdev); in mdp_m2m_device_unregister()