aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Schaefer <fschaefer.oss@googlemail.com>2013-02-07 11:39:10 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-03-04 11:36:40 -0500
commit66df67b764f6013e557ac41aa9e9474c87a9a99b (patch)
treeb4ebd9fa9f51f0802346a9e6b4c60aaf0413f21e
parent6e46daba562e44eee3009e4055a016a1c4bbb378 (diff)
[media] em28xx: disable tuner related ioctls for video and VBI devices without tuner
Disable the ioctls VIDIOC_G_TUNER, VIDIOC_S_TUNER, VIDIOC_G_FREQUENCY and VIDIOC_S_FREQUENCY for video and VBI devices without tuner. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/usb/em28xx/em28xx-video.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c
index d1e6ba62e06c..a2216334d6f5 100644
--- a/drivers/media/usb/em28xx/em28xx-video.c
+++ b/drivers/media/usb/em28xx/em28xx-video.c
@@ -1899,6 +1899,12 @@ int em28xx_register_analog_devices(struct em28xx *dev)
1899 v4l2_disable_ioctl(dev->vdev, VIDIOC_G_STD); 1899 v4l2_disable_ioctl(dev->vdev, VIDIOC_G_STD);
1900 v4l2_disable_ioctl(dev->vdev, VIDIOC_S_STD); 1900 v4l2_disable_ioctl(dev->vdev, VIDIOC_S_STD);
1901 } 1901 }
1902 if (dev->tuner_type == TUNER_ABSENT) {
1903 v4l2_disable_ioctl(dev->vdev, VIDIOC_G_TUNER);
1904 v4l2_disable_ioctl(dev->vdev, VIDIOC_S_TUNER);
1905 v4l2_disable_ioctl(dev->vdev, VIDIOC_G_FREQUENCY);
1906 v4l2_disable_ioctl(dev->vdev, VIDIOC_S_FREQUENCY);
1907 }
1902 1908
1903 /* register v4l2 video video_device */ 1909 /* register v4l2 video video_device */
1904 ret = video_register_device(dev->vdev, VFL_TYPE_GRABBER, 1910 ret = video_register_device(dev->vdev, VFL_TYPE_GRABBER,
@@ -1917,6 +1923,14 @@ int em28xx_register_analog_devices(struct em28xx *dev)
1917 dev->vbi_dev->queue = &dev->vb_vbiq; 1923 dev->vbi_dev->queue = &dev->vb_vbiq;
1918 dev->vbi_dev->queue->lock = &dev->vb_vbi_queue_lock; 1924 dev->vbi_dev->queue->lock = &dev->vb_vbi_queue_lock;
1919 1925
1926 /* disable inapplicable ioctls */
1927 if (dev->tuner_type == TUNER_ABSENT) {
1928 v4l2_disable_ioctl(dev->vbi_dev, VIDIOC_G_TUNER);
1929 v4l2_disable_ioctl(dev->vbi_dev, VIDIOC_S_TUNER);
1930 v4l2_disable_ioctl(dev->vbi_dev, VIDIOC_G_FREQUENCY);
1931 v4l2_disable_ioctl(dev->vbi_dev, VIDIOC_S_FREQUENCY);
1932 }
1933
1920 /* register v4l2 vbi video_device */ 1934 /* register v4l2 vbi video_device */
1921 ret = video_register_device(dev->vbi_dev, VFL_TYPE_VBI, 1935 ret = video_register_device(dev->vbi_dev, VFL_TYPE_VBI,
1922 vbi_nr[dev->devno]); 1936 vbi_nr[dev->devno]);