From d0852ed27c650237800470b5cbde368316813406 Mon Sep 17 00:00:00 2001
From: Hans Verkuil <hverkuil@xs4all.nl>
Date: Mon, 26 Jan 2009 19:13:05 -0300
Subject: 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>
---
 drivers/media/common/saa7146_fops.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c
index 4a27d4eda628..fec799d2600f 100644
--- a/drivers/media/common/saa7146_fops.c
+++ b/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);
 
-- 
cgit v1.2.3