Lines Matching refs:dev
87 struct viu_dev *dev;
122 struct device *dev;
159 struct viu_dev *dev;
246 static void viu_start_dma(struct viu_dev *dev)
248 struct viu_reg __iomem *vr = dev->vr;
250 dev->field = 0;
257 static void viu_stop_dma(struct viu_dev *dev)
259 struct viu_reg __iomem *vr = dev->vr;
287 dev->field = 0;
300 viu_stop_dma(vidq->dev);
321 viu_stop_dma(vidq->dev);
322 viu_start_dma(vidq->dev);
345 struct viu_dev *dev = from_timer(dev, t, vidq.timeout);
347 struct viu_dmaqueue *vidq = &dev->vidq;
397 inline int buffer_activate(struct viu_dev *dev, struct viu_buf *buf)
399 struct viu_reg __iomem *vr = dev->vr;
433 dev->capfield = buf->vb.field;
442 mod_timer(&dev->vidq.timeout, jiffies + BUFFER_TIMEOUT);
496 struct viu_dev *dev = fh->dev;
497 struct viu_dmaqueue *vidq = &dev->vidq;
504 dprintk(1, "dev %p, queued: self %p, next %p, head %p\n",
505 dev, &vidq->queued, vidq->queued.next,
519 buffer_activate(dev, buf);
544 struct viu_dev *dev = (struct viu_dev *)fh->dev;
546 viu_stop_dma(dev);
659 static int verify_preview(struct viu_dev *dev, struct v4l2_window *win)
664 if (dev->ovbuf.base == NULL)
666 if (dev->ovfmt == NULL)
672 maxw = dev->crop_current.width;
673 maxh = dev->crop_current.height;
706 static int viu_setup_preview(struct viu_dev *dev, struct viu_fh *fh)
720 bpp = dev->ovfmt->depth / 8;
736 dev->ovfield = fh->win.field;
737 if (!V4L2_FIELD_HAS_BOTH(dev->ovfield))
743 reg_val.field_base_addr = (u32)(long)dev->ovbuf.base;
752 struct viu_dev *dev = (struct viu_dev *)fh->dev;
756 err = verify_preview(dev, &f->fmt.win);
762 spin_lock_irqsave(&dev->slock, flags);
763 viu_setup_preview(dev, fh);
764 spin_unlock_irqrestore(&dev->slock, flags);
777 struct viu_dev *dev = (struct viu_dev *)fh->dev;
781 spin_lock_irqsave(&dev->slock, flags);
782 viu_activate_overlay(dev->vr);
783 dev->ovenable = 1;
786 viu_start_dma(dev);
787 spin_unlock_irqrestore(&dev->slock, flags);
789 viu_stop_dma(dev);
790 dev->ovenable = 0;
799 struct viu_dev *dev = fh->dev;
802 *fb = dev->ovbuf;
810 struct viu_dev *dev = fh->dev;
823 dev->ovbuf = *fb;
824 dev->ovfmt = fmt;
825 if (dev->ovbuf.fmt.bytesperline == 0) {
826 dev->ovbuf.fmt.bytesperline =
827 dev->ovbuf.fmt.width * fmt->depth / 8;
866 struct viu_dev *dev = fh->dev;
873 if (dev->ovenable)
874 dev->ovenable = 0;
876 viu_start_dma(fh->dev);
890 viu_stop_dma(fh->dev);
902 decoder_call(fh->dev, video, querystd, std_id);
910 fh->dev->std = id;
911 decoder_call(fh->dev, video, s_std, id);
919 *std_id = fh->dev->std;
933 inp->std = fh->dev->vdev->tvnorms;
951 decoder_call(fh->dev, video, s_routing, i, 0, 0);
955 inline void viu_activate_next_buf(struct viu_dev *dev,
966 buffer_activate(dev, buf);
975 buffer_activate(dev, buf);
991 static void viu_overlay_intr(struct viu_dev *dev, u32 status)
993 struct viu_reg __iomem *vr = dev->vr;
996 dev->dma_done = 1;
999 if (dev->dma_done) {
1002 dev->dma_done = 0;
1021 static void viu_capture_intr(struct viu_dev *dev, u32 status)
1023 struct viu_dmaqueue *vidq = &dev->vidq;
1024 struct viu_reg __iomem *vr = dev->vr;
1031 need_two = V4L2_FIELD_HAS_BOTH(dev->capfield);
1035 if (((field_num == 0) && (dev->field == 0)) ||
1036 (field_num && (dev->field == 1)))
1037 dev->field++;
1043 if (unlikely(dev->first)) {
1045 dev->first = 0;
1047 viu_activate_next_buf(dev, vidq);
1059 dprintk(1, "field 1, 0x%lx, dev field %d\n",
1060 (unsigned long)addr, dev->field);
1072 if (dma_done && field_num && (dev->field == 2)) {
1073 dev->field = 0;
1089 viu_activate_next_buf(dev, vidq);
1095 struct viu_dev *dev = (struct viu_dev *)dev_id;
1096 struct viu_reg __iomem *vr = dev->vr;
1103 dev->irqs.error_irq++;
1107 error >> 4, dev->irqs.error_irq);
1114 dev->irqs.dma_end_irq++;
1115 dev->dma_done = 1;
1117 dev->irqs.dma_end_irq);
1121 dev->irqs.hsync_irq++;
1124 dev->irqs.field_irq++;
1126 dev->irqs.field_irq);
1130 dev->irqs.vstart_irq++;
1133 dev->irqs.vsync_irq++;
1135 dev->irqs.vsync_irq);
1143 if (dev->ovenable) {
1144 viu_overlay_intr(dev, status);
1149 viu_capture_intr(dev, status);
1159 struct viu_dev *dev = video_get_drvdata(vdev);
1167 dev->users++;
1168 if (dev->users > 1) {
1169 dev->users--;
1173 vr = dev->vr;
1176 v4l2_type_names[V4L2_BUF_TYPE_VIDEO_CAPTURE], dev->users);
1178 if (mutex_lock_interruptible(&dev->lock)) {
1179 dev->users--;
1186 dev->users--;
1187 mutex_unlock(&dev->lock);
1193 fh->dev = dev;
1199 dev->crop_current.width = fh->width;
1200 dev->crop_current.height = fh->height;
1202 dprintk(1, "Open: fh=%p, dev=%p, dev->vidq=%p\n", fh, dev, &dev->vidq);
1204 list_empty(&dev->vidq.queued));
1206 list_empty(&dev->vidq.active));
1221 dev->dev, &fh->vbq_lock,
1224 &fh->dev->lock);
1226 mutex_unlock(&dev->lock);
1234 struct viu_dev *dev = fh->dev;
1238 if (dev->ovenable)
1239 dev->ovenable = 0;
1242 if (mutex_lock_interruptible(&dev->lock))
1244 viu_start_dma(dev);
1247 mutex_unlock(&dev->lock);
1257 struct viu_dev *dev = fh->dev;
1267 mutex_lock(&dev->lock);
1269 mutex_unlock(&dev->lock);
1276 struct viu_dev *dev = fh->dev;
1279 mutex_lock(&dev->lock);
1280 viu_stop_dma(dev);
1285 mutex_unlock(&dev->lock);
1289 dev->users--;
1291 minor, dev->users);
1312 struct viu_dev *dev = fh->dev;
1317 if (mutex_lock_interruptible(&dev->lock))
1320 mutex_unlock(&dev->lock);
1392 ret = of_address_to_resource(op->dev.of_node, 0, &r);
1394 dev_err(&op->dev, "Can't parse device node resource\n");
1398 viu_irq = irq_of_parse_and_map(op->dev.of_node, 0);
1400 dev_err(&op->dev, "Error while mapping the irq\n");
1405 if (!devm_request_mem_region(&op->dev, r.start,
1407 dev_err(&op->dev, "Error while requesting mem region\n");
1413 viu_regs = devm_ioremap(&op->dev, r.start, sizeof(struct viu_reg));
1415 dev_err(&op->dev, "Can't map register set\n");
1421 viu_dev = devm_kzalloc(&op->dev, sizeof(struct viu_dev), GFP_ATOMIC);
1423 dev_err(&op->dev, "Can't allocate private structure\n");
1430 viu_dev->dev = &op->dev;
1438 ret = v4l2_device_register(viu_dev->dev, &viu_dev->v4l2_dev);
1440 dev_err(&op->dev, "v4l2_device_register() failed: %d\n", ret);
1447 dev_err(&op->dev, "couldn't get i2c adapter\n");
1454 dev_err(&op->dev, "couldn't register control\n");
1496 clk = devm_clk_get(&op->dev, "ipg");
1498 dev_err(&op->dev, "failed to lookup the clock!\n");
1504 dev_err(&op->dev, "failed to enable the clock!\n");
1514 dev_err(&op->dev, "Request VIU IRQ failed.\n");
1521 dev_info(&op->dev, "Freescale VIU Video Capture Board\n");
1543 struct v4l2_device *v4l2_dev = dev_get_drvdata(&op->dev);
1544 struct viu_dev *dev = container_of(v4l2_dev, struct viu_dev, v4l2_dev);
1549 free_irq(dev->irq, (void *)dev);
1550 irq_dispose_mapping(dev->irq);
1552 clk_disable_unprepare(dev->clk);
1554 v4l2_ctrl_handler_free(&dev->hdl);
1555 video_unregister_device(dev->vdev);
1557 v4l2_device_unregister(&dev->v4l2_dev);
1564 struct v4l2_device *v4l2_dev = dev_get_drvdata(&op->dev);
1565 struct viu_dev *dev = container_of(v4l2_dev, struct viu_dev, v4l2_dev);
1567 clk_disable(dev->clk);
1573 struct v4l2_device *v4l2_dev = dev_get_drvdata(&op->dev);
1574 struct viu_dev *dev = container_of(v4l2_dev, struct viu_dev, v4l2_dev);
1576 clk_enable(dev->clk);