OSDN Git Service

[media] ivtv: disable a bunch of ioctls that are invalid for the decoder VBI
authorHans Verkuil <hans.verkuil@cisco.com>
Wed, 5 Sep 2012 15:28:06 +0000 (12:28 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 1 Oct 2012 20:23:24 +0000 (17:23 -0300)
The VBI capture for the decoder (/dev/vbi8) is special in that it captures
the VBI stream embedded in an MPEG stream that is being decoded.
A lot of the ioctls that would normally be valid have to be disabled since
they make no sense for such a device, and v4l2-compliance will complain
about that.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/pci/ivtv/ivtv-streams.c

index 3455f46..70dad58 100644 (file)
@@ -238,6 +238,19 @@ static int ivtv_prep_dev(struct ivtv *itv, int type)
        s->vdev->release = video_device_release;
        s->vdev->tvnorms = V4L2_STD_ALL;
        s->vdev->lock = &itv->serialize_lock;
+       if (s->type == IVTV_DEC_STREAM_TYPE_VBI) {
+               v4l2_disable_ioctl(s->vdev, VIDIOC_S_AUDIO);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_G_AUDIO);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_ENUMAUDIO);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_ENUMINPUT);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_S_INPUT);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_G_INPUT);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_S_FREQUENCY);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_G_FREQUENCY);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_S_TUNER);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_G_TUNER);
+               v4l2_disable_ioctl(s->vdev, VIDIOC_S_STD);
+       }
        set_bit(V4L2_FL_USE_FH_PRIO, &s->vdev->flags);
        ivtv_set_funcs(s->vdev);
        return 0;