aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Diniz <diniz@wimobilis.com.br>2008-10-24 23:07:57 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-11-11 08:11:23 -0200
commitb058e3f39508a3876a4fbf4a92398c817cf82809 (patch)
treec6a85638017c900f537590fe524d09dd6da60a41
parente8deeae24f8b55a7203bec9b056593d9c62fae68 (diff)
downloadkernel_samsung_smdk4412-b058e3f39508a3876a4fbf4a92398c817cf82809.zip
kernel_samsung_smdk4412-b058e3f39508a3876a4fbf4a92398c817cf82809.tar.gz
kernel_samsung_smdk4412-b058e3f39508a3876a4fbf4a92398c817cf82809.tar.bz2
V4L/DVB (9368): VBI fix for cx88 cards
The attached patch fix VBI support cx88 card. I'm running a capture for hours, getting the closed caption from it[1], and it's working perfect - the output is the same of a bttv card. Please apply this patch as soon as possible. [1] - using zvbi-ntsc-cc of zvbi project. Signed-off-by: Rafael Diniz <diniz@wimobilis.com.br> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/cx88/cx88-video.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index 61265fd..b96ce99 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -1216,8 +1216,12 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
struct cx8800_fh *fh = priv;
struct cx8800_dev *dev = fh->dev;
- if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE))
+ /* We should remember that this driver also supports teletext, */
+ /* so we have to test if the v4l2_buf_type is VBI capture data. */
+ if (unlikely((fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
+ (fh->type != V4L2_BUF_TYPE_VBI_CAPTURE)))
return -EINVAL;
+
if (unlikely(i != fh->type))
return -EINVAL;
@@ -1232,8 +1236,10 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
struct cx8800_dev *dev = fh->dev;
int err, res;
- if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+ if ((fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
+ (fh->type != V4L2_BUF_TYPE_VBI_CAPTURE))
return -EINVAL;
+
if (i != fh->type)
return -EINVAL;