Lines Matching refs:pcdev
237 struct emmaprp_dev *pcdev = ctx->dev;
241 dprintk(pcdev, "Aborting task\n");
243 v4l2_m2m_job_finish(pcdev->m2m_dev, ctx->fh.m2m_ctx);
246 static inline void emmaprp_dump_regs(struct emmaprp_dev *pcdev)
248 dprintk(pcdev,
257 readl(pcdev->base_emma + PRP_SOURCE_Y_PTR),
258 readl(pcdev->base_emma + PRP_SRC_FRAME_SIZE),
259 readl(pcdev->base_emma + PRP_DEST_Y_PTR),
260 readl(pcdev->base_emma + PRP_DEST_CR_PTR),
261 readl(pcdev->base_emma + PRP_DEST_CB_PTR),
262 readl(pcdev->base_emma + PRP_CH2_OUT_IMAGE_SIZE),
263 readl(pcdev->base_emma + PRP_CNTL));
271 struct emmaprp_dev *pcdev = ctx->dev;
293 v4l2_err(&pcdev->v4l2_dev,
299 writel(p_in, pcdev->base_emma + PRP_SOURCE_Y_PTR);
301 pcdev->base_emma + PRP_SRC_FRAME_SIZE);
304 writel(p_out, pcdev->base_emma + PRP_DEST_Y_PTR);
305 writel(p_out + d_size, pcdev->base_emma + PRP_DEST_CB_PTR);
307 pcdev->base_emma + PRP_DEST_CR_PTR);
309 pcdev->base_emma + PRP_CH2_OUT_IMAGE_SIZE);
312 tmp = readl(pcdev->base_emma + PRP_INTR_CNTL);
316 pcdev->base_emma + PRP_INTR_CNTL);
318 emmaprp_dump_regs(pcdev);
321 tmp = readl(pcdev->base_emma + PRP_CNTL);
325 pcdev->base_emma + PRP_CNTL);
330 struct emmaprp_dev *pcdev = data;
337 irqst = readl(pcdev->base_emma + PRP_INTRSTATUS);
338 writel(irqst, pcdev->base_emma + PRP_INTRSTATUS);
339 dprintk(pcdev, "irqst = 0x%08x\n", irqst);
341 curr_ctx = v4l2_m2m_get_curr_priv(pcdev->m2m_dev);
351 writel(PRP_CNTL_SWRST, pcdev->base_emma + PRP_CNTL);
364 spin_lock_irqsave(&pcdev->irqlock, flags);
367 spin_unlock_irqrestore(&pcdev->irqlock, flags);
371 v4l2_m2m_job_finish(pcdev->m2m_dev, curr_ctx->fh.m2m_ctx);
722 struct emmaprp_dev *pcdev = video_drvdata(file);
731 ctx->dev = pcdev;
733 if (mutex_lock_interruptible(&pcdev->dev_mutex)) {
738 ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(pcdev->m2m_dev, ctx, &queue_init);
743 mutex_unlock(&pcdev->dev_mutex);
748 clk_prepare_enable(pcdev->clk_emma_ipg);
749 clk_prepare_enable(pcdev->clk_emma_ahb);
753 mutex_unlock(&pcdev->dev_mutex);
755 dprintk(pcdev, "Created instance %p, m2m_ctx: %p\n", ctx, ctx->fh.m2m_ctx);
762 struct emmaprp_dev *pcdev = video_drvdata(file);
765 dprintk(pcdev, "Releasing instance %p\n", ctx);
767 mutex_lock(&pcdev->dev_mutex);
768 clk_disable_unprepare(pcdev->clk_emma_ahb);
769 clk_disable_unprepare(pcdev->clk_emma_ipg);
773 mutex_unlock(&pcdev->dev_mutex);
805 struct emmaprp_dev *pcdev;
810 pcdev = devm_kzalloc(&pdev->dev, sizeof(*pcdev), GFP_KERNEL);
811 if (!pcdev)
814 spin_lock_init(&pcdev->irqlock);
816 pcdev->clk_emma_ipg = devm_clk_get(&pdev->dev, "ipg");
817 if (IS_ERR(pcdev->clk_emma_ipg)) {
818 return PTR_ERR(pcdev->clk_emma_ipg);
821 pcdev->clk_emma_ahb = devm_clk_get(&pdev->dev, "ahb");
822 if (IS_ERR(pcdev->clk_emma_ahb))
823 return PTR_ERR(pcdev->clk_emma_ahb);
826 pcdev->base_emma = devm_ioremap_resource(&pdev->dev, res);
827 if (IS_ERR(pcdev->base_emma))
828 return PTR_ERR(pcdev->base_emma);
830 ret = v4l2_device_register(&pdev->dev, &pcdev->v4l2_dev);
834 mutex_init(&pcdev->dev_mutex);
838 v4l2_err(&pcdev->v4l2_dev, "Failed to allocate video device\n");
844 vfd->lock = &pcdev->dev_mutex;
845 vfd->v4l2_dev = &pcdev->v4l2_dev;
847 video_set_drvdata(vfd, pcdev);
848 pcdev->vfd = vfd;
849 v4l2_info(&pcdev->v4l2_dev, EMMAPRP_MODULE_NAME
852 platform_set_drvdata(pdev, pcdev);
861 dev_name(&pdev->dev), pcdev);
865 pcdev->m2m_dev = v4l2_m2m_init(&m2m_ops);
866 if (IS_ERR(pcdev->m2m_dev)) {
867 v4l2_err(&pcdev->v4l2_dev, "Failed to init mem2mem device\n");
868 ret = PTR_ERR(pcdev->m2m_dev);
874 v4l2_err(&pcdev->v4l2_dev, "Failed to register video device\n");
882 v4l2_m2m_release(pcdev->m2m_dev);
886 v4l2_device_unregister(&pcdev->v4l2_dev);
888 mutex_destroy(&pcdev->dev_mutex);
895 struct emmaprp_dev *pcdev = platform_get_drvdata(pdev);
897 v4l2_info(&pcdev->v4l2_dev, "Removing " EMMAPRP_MODULE_NAME);
899 video_unregister_device(pcdev->vfd);
900 v4l2_m2m_release(pcdev->m2m_dev);
901 v4l2_device_unregister(&pcdev->v4l2_dev);
902 mutex_destroy(&pcdev->dev_mutex);