Merge tag 'please-pull-mce' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / media / common / saa7146_vbi.c
index b2e7183..1e71e37 100644 (file)
@@ -211,7 +211,7 @@ static int buffer_activate(struct saa7146_dev *dev,
        DEB_VBI("dev:%p, buf:%p, next:%p\n", dev, buf, next);
        saa7146_set_vbi_capture(dev,buf,next);
 
-       mod_timer(&vv->vbi_q.timeout, jiffies+BUFFER_TIMEOUT);
+       mod_timer(&vv->vbi_dmaq.timeout, jiffies+BUFFER_TIMEOUT);
        return 0;
 }
 
@@ -294,7 +294,7 @@ static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb)
        struct saa7146_buf *buf = (struct saa7146_buf *)vb;
 
        DEB_VBI("vb:%p\n", vb);
-       saa7146_buffer_queue(dev,&vv->vbi_q,buf);
+       saa7146_buffer_queue(dev, &vv->vbi_dmaq, buf);
 }
 
 static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb)
@@ -335,16 +335,15 @@ static void vbi_stop(struct saa7146_fh *fh, struct file *file)
        /* shut down dma 3 transfers */
        saa7146_write(dev, MC1, MASK_20);
 
-       if (vv->vbi_q.curr) {
-               saa7146_buffer_finish(dev,&vv->vbi_q,VIDEOBUF_DONE);
-       }
+       if (vv->vbi_dmaq.curr)
+               saa7146_buffer_finish(dev, &vv->vbi_dmaq, VIDEOBUF_DONE);
 
        videobuf_queue_cancel(&fh->vbi_q);
 
        vv->vbi_streaming = NULL;
 
-       del_timer(&vv->vbi_q.timeout);
-       del_timer(&fh->vbi_read_timeout);
+       del_timer(&vv->vbi_dmaq.timeout);
+       del_timer(&vv->vbi_read_timeout);
 
        spin_unlock_irqrestore(&dev->slock, flags);
 }
@@ -364,12 +363,12 @@ static void vbi_init(struct saa7146_dev *dev, struct saa7146_vv *vv)
 {
        DEB_VBI("dev:%p\n", dev);
 
-       INIT_LIST_HEAD(&vv->vbi_q.queue);
+       INIT_LIST_HEAD(&vv->vbi_dmaq.queue);
 
-       init_timer(&vv->vbi_q.timeout);
-       vv->vbi_q.timeout.function = saa7146_buffer_timeout;
-       vv->vbi_q.timeout.data     = (unsigned long)(&vv->vbi_q);
-       vv->vbi_q.dev              = dev;
+       init_timer(&vv->vbi_dmaq.timeout);
+       vv->vbi_dmaq.timeout.function = saa7146_buffer_timeout;
+       vv->vbi_dmaq.timeout.data     = (unsigned long)(&vv->vbi_dmaq);
+       vv->vbi_dmaq.dev              = dev;
 
        init_waitqueue_head(&vv->vbi_wq);
 }
@@ -377,6 +376,7 @@ static void vbi_init(struct saa7146_dev *dev, struct saa7146_vv *vv)
 static int vbi_open(struct saa7146_dev *dev, struct file *file)
 {
        struct saa7146_fh *fh = file->private_data;
+       struct saa7146_vv *vv = fh->dev->vv_data;
 
        u32 arbtr_ctrl  = saa7146_read(dev, PCI_BT_V1);
        int ret = 0;
@@ -395,19 +395,6 @@ static int vbi_open(struct saa7146_dev *dev, struct file *file)
        saa7146_write(dev, PCI_BT_V1, arbtr_ctrl);
        saa7146_write(dev, MC2, (MASK_04|MASK_20));
 
-       memset(&fh->vbi_fmt,0,sizeof(fh->vbi_fmt));
-
-       fh->vbi_fmt.sampling_rate       = 27000000;
-       fh->vbi_fmt.offset              = 248; /* todo */
-       fh->vbi_fmt.samples_per_line    = vbi_pixel_to_capture;
-       fh->vbi_fmt.sample_format       = V4L2_PIX_FMT_GREY;
-
-       /* fixme: this only works for PAL */
-       fh->vbi_fmt.start[0] = 5;
-       fh->vbi_fmt.count[0] = 16;
-       fh->vbi_fmt.start[1] = 312;
-       fh->vbi_fmt.count[1] = 16;
-
        videobuf_queue_sg_init(&fh->vbi_q, &vbi_qops,
                            &dev->pci->dev, &dev->slock,
                            V4L2_BUF_TYPE_VBI_CAPTURE,
@@ -415,9 +402,8 @@ static int vbi_open(struct saa7146_dev *dev, struct file *file)
                            sizeof(struct saa7146_buf),
                            file, &dev->v4l2_lock);
 
-       init_timer(&fh->vbi_read_timeout);
-       fh->vbi_read_timeout.function = vbi_read_timeout;
-       fh->vbi_read_timeout.data = (unsigned long)file;
+       vv->vbi_read_timeout.function = vbi_read_timeout;
+       vv->vbi_read_timeout.data = (unsigned long)file;
 
        /* initialize the brs */
        if ( 0 != (SAA7146_USE_PORT_B_FOR_VBI & dev->ext_vv_data->flags)) {
@@ -453,16 +439,16 @@ static void vbi_irq_done(struct saa7146_dev *dev, unsigned long status)
        struct saa7146_vv *vv = dev->vv_data;
        spin_lock(&dev->slock);
 
-       if (vv->vbi_q.curr) {
-               DEB_VBI("dev:%p, curr:%p\n", dev, vv->vbi_q.curr);
+       if (vv->vbi_dmaq.curr) {
+               DEB_VBI("dev:%p, curr:%p\n", dev, vv->vbi_dmaq.curr);
                /* this must be += 2, one count for each field */
                vv->vbi_fieldcount+=2;
-               vv->vbi_q.curr->vb.field_count = vv->vbi_fieldcount;
-               saa7146_buffer_finish(dev,&vv->vbi_q,VIDEOBUF_DONE);
+               vv->vbi_dmaq.curr->vb.field_count = vv->vbi_fieldcount;
+               saa7146_buffer_finish(dev, &vv->vbi_dmaq, VIDEOBUF_DONE);
        } else {
                DEB_VBI("dev:%p\n", dev);
        }
-       saa7146_buffer_next(dev,&vv->vbi_q,1);
+       saa7146_buffer_next(dev, &vv->vbi_dmaq, 1);
 
        spin_unlock(&dev->slock);
 }
@@ -488,7 +474,7 @@ static ssize_t vbi_read(struct file *file, char __user *data, size_t count, loff
                return -EBUSY;
        }
 
-       mod_timer(&fh->vbi_read_timeout, jiffies+BUFFER_TIMEOUT);
+       mod_timer(&vv->vbi_read_timeout, jiffies+BUFFER_TIMEOUT);
        ret = videobuf_read_stream(&fh->vbi_q, data, count, ppos, 1,
                                   file->f_flags & O_NONBLOCK);
 /*