Pārlūkot izejas kodu

V4L/DVB (10313): saa7146: fix VIDIOC_ENUMSTD.

The previous conversion to video_ioctl2 broke VIDIOC_ENUMSTD. This
is now fixed.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil 16 gadi atpakaļ
vecāks
revīzija
d0852ed27c
1 mainītis faili ar 5 papildinājumiem un 2 dzēšanām
  1. 5 2
      drivers/media/common/saa7146_fops.c

+ 5 - 2
drivers/media/common/saa7146_fops.c

@@ -511,6 +511,7 @@ int saa7146_register_device(struct video_device **vid, struct saa7146_dev* dev,
 	struct saa7146_vv *vv = dev->vv_data;
 	struct video_device *vfd;
 	int err;
+	int i;
 
 	DEB_EE(("dev:%p, name:'%s', type:%d\n",dev,name,type));
 
@@ -520,9 +521,11 @@ int saa7146_register_device(struct video_device **vid, struct saa7146_dev* dev,
 		return -ENOMEM;
 
 	vfd->fops = &video_fops;
-	vfd->ioctl_ops = dev->ext_vv_data ? &dev->ext_vv_data->ops :
-						&saa7146_video_ioctl_ops;
+	vfd->ioctl_ops = &dev->ext_vv_data->ops;
 	vfd->release = video_device_release;
+	vfd->tvnorms = 0;
+	for (i = 0; i < dev->ext_vv_data->num_stds; i++)
+		vfd->tvnorms |= dev->ext_vv_data->stds[i].id;
 	strlcpy(vfd->name, name, sizeof(vfd->name));
 	video_set_drvdata(vfd, dev);