瀏覽代碼

V4L/DVB (5117): Fix: VIDIOC_G_TUNER were returning an endless number of tuners

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>
Mauro Carvalho Chehab 18 年之前
父節點
當前提交
5cc1dd8c3d
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      drivers/media/video/pvrusb2/pvrusb2-v4l2.c

+ 4 - 0
drivers/media/video/pvrusb2/pvrusb2-v4l2.c

@@ -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;