aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2009-09-15 07:08:20 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-18 23:15:25 -0400
commit707ca1e30f087f9a6d144693dafc4b67880678c2 (patch)
treec485bdf7ac2f1fd49fc154502edb94ef1511a7ca /drivers/media/video
parent3a360ced7b3756efbfe822871cc36dc0490fc46b (diff)
V4L/DVB (12948): v4l1-compat: fix VIDIOC_G_STD handling
The VIDIOC_G_STD ioctl may not be present in the case of radio receivers. In that case G_STD will return an error. The v4l1-compat layer should not attempt to propagate that error to the caller, instead it should be ignored. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/v4l1-compat.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/media/video/v4l1-compat.c b/drivers/media/video/v4l1-compat.c
index 761fbd64db58..0c2105ca611e 100644
--- a/drivers/media/video/v4l1-compat.c
+++ b/drivers/media/video/v4l1-compat.c
@@ -564,10 +564,9 @@ static noinline long v4l1_compat_get_input_info(
564 break; 564 break;
565 } 565 }
566 chan->norm = 0; 566 chan->norm = 0;
567 err = drv(file, VIDIOC_G_STD, &sid); 567 /* Note: G_STD might not be present for radio receivers,
568 if (err < 0) 568 * so we should ignore any errors. */
569 dprintk("VIDIOCGCHAN / VIDIOC_G_STD: %ld\n", err); 569 if (drv(file, VIDIOC_G_STD, &sid) == 0) {
570 if (err == 0) {
571 if (sid & V4L2_STD_PAL) 570 if (sid & V4L2_STD_PAL)
572 chan->norm = VIDEO_MODE_PAL; 571 chan->norm = VIDEO_MODE_PAL;
573 if (sid & V4L2_STD_NTSC) 572 if (sid & V4L2_STD_NTSC)
@@ -776,10 +775,9 @@ static noinline long v4l1_compat_get_tuner(
776 tun->flags |= VIDEO_TUNER_SECAM; 775 tun->flags |= VIDEO_TUNER_SECAM;
777 } 776 }
778 777
779 err = drv(file, VIDIOC_G_STD, &sid); 778 /* Note: G_STD might not be present for radio receivers,
780 if (err < 0) 779 * so we should ignore any errors. */
781 dprintk("VIDIOCGTUNER / VIDIOC_G_STD: %ld\n", err); 780 if (drv(file, VIDIOC_G_STD, &sid) == 0) {
782 if (err == 0) {
783 if (sid & V4L2_STD_PAL) 781 if (sid & V4L2_STD_PAL)
784 tun->mode = VIDEO_MODE_PAL; 782 tun->mode = VIDEO_MODE_PAL;
785 if (sid & V4L2_STD_NTSC) 783 if (sid & V4L2_STD_NTSC)