V4L/DVB (5117): Fix: VIDIOC_G_TUNER were returning an endless number of tuners
authorMauro Carvalho Chehab <mchehab@infradead.org>
Mon, 22 Jan 2007 01:02:58 +0000 (22:02 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 21 Feb 2007 15:34:48 +0000 (13:34 -0200)
pvrusb2 have only one tuner inside. However, as it were not handling
index, a call to v4l-info were returning as if it were an infinite
number of tuners:
$ v4l-info|grep VIDIOC_G_TUNER |head -5
    VIDIOC_G_TUNER(0)
    VIDIOC_G_TUNER(1)
    VIDIOC_G_TUNER(2)
    VIDIOC_G_TUNER(3)
    VIDIOC_G_TUNER(4)

Acked-by: Mike Isely <isely@isely.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/pvrusb2/pvrusb2-v4l2.c

index 53323c338a6d2032bd22d48c3a51f14a1aaa1608..49f5d3c3614ccdb937e4b44ac9ed4ffc969807ff 100644 (file)
@@ -365,6 +365,10 @@ static int pvr2_v4l2_do_ioctl(struct inode *inode, struct file *file,
        case VIDIOC_G_TUNER:
        {
                struct v4l2_tuner *vt = (struct v4l2_tuner *)arg;
+
+               if (vt->index != 0)
+                       break;
+
                pvr2_hdw_execute_tuner_poll(hdw);
                ret = pvr2_hdw_get_tuner_status(hdw,vt);
                break;