[media] cx23885: video instead of vbi register used
authorHans Verkuil <hans.verkuil@cisco.com>
Mon, 30 Nov 2015 16:47:00 +0000 (14:47 -0200)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 18 Dec 2015 15:37:12 +0000 (13:37 -0200)
The VID_A_GPCNT register is for video, not vbi. Read from the right
register and don't write to the video register.

Based upon Devin's initial patch made for an older kernel which I
cleaned up and rebased. Thanks to Kernel Labs for that work.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/cx23885/cx23885-vbi.c

index cf3cb1324c55ad7c60d02878ff86f59f87ee1620..ab36d12e6ec79d7f1bfbecc8fabeb8d0e84b7650 100644 (file)
@@ -83,7 +83,7 @@ int cx23885_vbi_irq(struct cx23885_dev *dev, u32 status)
        if (status & VID_BC_MSK_VBI_RISCI1) {
                dprintk(1, "%s() VID_BC_MSK_VBI_RISCI1\n", __func__);
                spin_lock(&dev->slock);
-               count = cx_read(VID_A_GPCNT);
+               count = cx_read(VBI_A_GPCNT);
                cx23885_video_wakeup(dev, &dev->vbiq, count);
                spin_unlock(&dev->slock);
                handled++;
@@ -103,7 +103,6 @@ static int cx23885_start_vbi_dma(struct cx23885_dev    *dev,
                                VBI_LINE_LENGTH, buf->risc.dma);
 
        /* reset counter */
-       cx_write(VID_A_GPCNT_CTL, 3);
        cx_write(VID_A_VBI_CTRL, 3);
        cx_write(VBI_A_GPCNT_CTL, 3);
        q->count = 0;