diff options
author | Frank Schaefer <fschaefer.oss@googlemail.com> | 2013-02-07 11:39:10 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-04 11:36:40 -0500 |
commit | 66df67b764f6013e557ac41aa9e9474c87a9a99b (patch) | |
tree | b4ebd9fa9f51f0802346a9e6b4c60aaf0413f21e | |
parent | 6e46daba562e44eee3009e4055a016a1c4bbb378 (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.c | 14 |
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]); |