summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/au0828
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@linuxtv.org>2009-03-11 02:00:55 -0400
committerDevin Heitmueller <dheitmueller@linuxtv.org>2009-03-11 02:00:55 -0400
commit5f01441f863dd75318eba7d46e33689605a7b68a (patch)
tree62842662728f0e1ca71392cd30638443ba6f444e /linux/drivers/media/video/au0828
parentde945fa2e9213ecf4dba1f9b3a96cc45d18da56c (diff)
downloadmediapointer-dvb-s2-5f01441f863dd75318eba7d46e33689605a7b68a.tar.gz
mediapointer-dvb-s2-5f01441f863dd75318eba7d46e33689605a7b68a.tar.bz2
au0828: disable VBI code since it doesn't yet work
From: Devin Heitmueller <dheitmueller@linuxtv.org> Since the VBI support is not yet working for the au0828, don't advertise the capability or create the /dev/vbi device. Priority: normal Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/video/au0828')
-rw-r--r--linux/drivers/media/video/au0828/au0828-video.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/linux/drivers/media/video/au0828/au0828-video.c b/linux/drivers/media/video/au0828/au0828-video.c
index 0162a58c8..b675df838 100644
--- a/linux/drivers/media/video/au0828/au0828-video.c
+++ b/linux/drivers/media/video/au0828/au0828-video.c
@@ -705,8 +705,10 @@ void au0828_analog_unregister(struct au0828_dev *dev)
mutex_lock(&au0828_sysfs_lock);
list_del(&dev->au0828list);
- video_unregister_device(dev->vdev);
- video_unregister_device(dev->vbi_dev);
+ if (dev->vdev)
+ video_unregister_device(dev->vdev);
+ if (dev->vbi_dev)
+ video_unregister_device(dev->vbi_dev);
mutex_unlock(&au0828_sysfs_lock);
}
@@ -758,10 +760,12 @@ static int au0828_v4l2_open(struct file *filp)
dev = h;
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
}
+#ifdef VBI_NOT_YET_WORKING
if(h->vbi_dev->minor == minor) {
dev = h;
type = V4L2_BUF_TYPE_VBI_CAPTURE;
}
+#endif
}
if(NULL == dev)
@@ -935,6 +939,7 @@ static int au0828_set_format(struct au0828_dev *dev, unsigned int cmd,
maxwidth = 720;
maxheight = 480;
+#ifdef VBI_NOT_YET_WORKING
if(format->type == V4L2_BUF_TYPE_SLICED_VBI_CAPTURE) {
dprintk(1, "VBI format set: to be supported!\n");
return 0;
@@ -942,6 +947,7 @@ static int au0828_set_format(struct au0828_dev *dev, unsigned int cmd,
if(format->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
return 0;
}
+#endif
if(format->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
return -EINVAL;
}
@@ -1023,8 +1029,10 @@ static int vidioc_querycap(struct file *file, void *priv,
cap->version = AU0828_VERSION_CODE;
/*set the device capabilities */
- cap->capabilities = V4L2_CAP_VBI_CAPTURE |
- V4L2_CAP_VIDEO_CAPTURE |
+ cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
+#ifdef VBI_NOT_YET_WORKING
+ V4L2_CAP_VBI_CAPTURE |
+#endif
V4L2_CAP_AUDIO |
V4L2_CAP_READWRITE |
V4L2_CAP_STREAMING |
@@ -1555,7 +1563,7 @@ static const struct v4l2_ioctl_ops video_ioctl_ops = {
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
-#if 0
+#ifdef VBI_NOT_YET_WORKING
.vidioc_g_fmt_vbi_cap = vidioc_g_fmt_vbi_cap,
.vidioc_try_fmt_vbi_cap = vidioc_s_fmt_vbi_cap,
.vidioc_s_fmt_vbi_cap = vidioc_s_fmt_vbi_cap,
@@ -1563,7 +1571,7 @@ static const struct v4l2_ioctl_ops video_ioctl_ops = {
.vidioc_g_audio = vidioc_g_audio,
.vidioc_s_audio = vidioc_s_audio,
.vidioc_cropcap = vidioc_cropcap,
-#ifdef AAA
+#ifdef VBI_NOT_YET_WORKING
.vidioc_g_fmt_sliced_vbi_cap = vidioc_g_fmt_sliced_vbi_cap,
.vidioc_try_fmt_sliced_vbi_cap = vidioc_try_set_sliced_vbi_cap,
.vidioc_s_fmt_sliced_vbi_cap = vidioc_try_set_sliced_vbi_cap,
@@ -1633,12 +1641,14 @@ int au0828_analog_register(struct au0828_dev *dev)
return -ENOMEM;
}
+#ifdef VBI_NOT_YET_WORKING
dev->vbi_dev = video_device_alloc();
if(NULL == dev->vbi_dev) {
dprintk(1, "Can't allocate vbi_device.\n");
kfree(dev->vdev);
return -ENOMEM;
}
+#endif
/* Fill the video capture device struct */
*dev->vdev = au0828_video_template;
@@ -1646,11 +1656,13 @@ int au0828_analog_register(struct au0828_dev *dev)
dev->vdev->parent = &dev->usbdev->dev;
strcpy(dev->vdev->name, "au0828a video");
+#ifdef VBI_NOT_YET_WORKING
/* Setup the VBI device */
*dev->vbi_dev = au0828_video_template;
dev->vbi_dev->vfl_type = VFL_TYPE_VBI;
dev->vbi_dev->parent = &dev->usbdev->dev;
strcpy(dev->vbi_dev->name, "au0828a vbi");
+#endif
list_add_tail(&dev->au0828list, &au0828_devlist);
@@ -1662,6 +1674,7 @@ int au0828_analog_register(struct au0828_dev *dev)
return -ENODEV;
}
+#ifdef VBI_NOT_YET_WORKING
/* Register the vbi device */
if((retval = video_register_device(dev->vbi_dev, VFL_TYPE_VBI, -1)) != 0) {
dprintk(1, "unable to register vbi device (error = %d).\n", retval);
@@ -1670,6 +1683,7 @@ int au0828_analog_register(struct au0828_dev *dev)
video_device_release(dev->vdev);
return -ENODEV;
}
+#endif
dprintk(1, "%s completed!\n", __FUNCTION__);