V4L/DVB (11073): au0828: disable VBI code since it doesn't yet work

Since the VBI support is not yet working for the au0828, don't advertise the
capability or create the /dev/vbi device.

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/video/au0828/au0828-video.c b/drivers/media/video/au0828/au0828-video.c
index 7f6f9d9..0dd1383 100644
--- a/drivers/media/video/au0828/au0828-video.c
+++ b/drivers/media/video/au0828/au0828-video.c
@@ -701,8 +701,10 @@
 	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);
 }
@@ -754,10 +756,12 @@
 			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)
@@ -931,6 +935,7 @@
 	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;
@@ -938,6 +943,7 @@
 	if(format->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
 		return 0;
 	}
+#endif
 	if(format->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
 		return -EINVAL;
 	}
@@ -1019,8 +1025,10 @@
 	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 |
@@ -1551,10 +1559,15 @@
 	.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,
+#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,
+#endif
 	.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,
@@ -1624,12 +1637,14 @@
 		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;
@@ -1637,11 +1652,13 @@
 	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);
 
@@ -1653,6 +1670,7 @@
 		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);
@@ -1661,6 +1679,7 @@
 		video_device_release(dev->vdev);
 		return -ENODEV;
 	}
+#endif
 
 	dprintk(1, "%s completed!\n", __FUNCTION__);