summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/pvrusb2
diff options
context:
space:
mode:
authorMike Isely2012-02-20 06:33:06 +0100
committerMauro Carvalho Chehab2012-05-07 21:56:10 +0200
commitd8329f8e17af85c568768fb268e0695dd1fc8148 (patch)
tree8c4c1e71e0b5893e87eff1af3b4900c6ed82493f /drivers/media/video/pvrusb2
parent[media][trival] pvrusb2: Fix truncated video standard names (diff)
downloadkernel-qcow2-linux-d8329f8e17af85c568768fb268e0695dd1fc8148.tar.gz
kernel-qcow2-linux-d8329f8e17af85c568768fb268e0695dd1fc8148.tar.xz
kernel-qcow2-linux-d8329f8e17af85c568768fb268e0695dd1fc8148.zip
[media] pvrusb2: Base available video standards on what hardware supports
With the transition to ioctl2, the pvrusb2 driver's own standards enumeration is no longer used. Instead a generic algorithm internal to v4l is used (which is a great idea - since the pvrusb2 implementation itself was generic anyway). This change ensures that the v4l algorithm works with the correct set of hardware supported standards. This resolves a FIXME left behind from the videodev_ioctl2 transition. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/pvrusb2')
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-v4l2.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
index ed497bbf539b..4c1a47470d39 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
@@ -1348,10 +1348,13 @@ static void pvr2_v4l2_dev_init(struct pvr2_v4l2_dev *dip,
memcpy(&dip->devbase,&vdev_template,sizeof(vdev_template));
dip->devbase.release = pvr2_video_device_release;
dip->devbase.ioctl_ops = &pvr2_ioctl_ops;
- /* FIXME: tvnorms should be set to the set of supported standards
- by this device. Then video_ioctl2 will implement VIDIOC_ENUMSTD
- based on this field. */
- dip->devbase.tvnorms = V4L2_STD_ALL;
+ {
+ int val;
+ pvr2_ctrl_get_value(
+ pvr2_hdw_get_ctrl_by_id(vp->channel.mc_head->hdw,
+ PVR2_CID_STDAVAIL), &val);
+ dip->devbase.tvnorms = (v4l2_std_id)val;
+ }
mindevnum = -1;
unit_number = pvr2_hdw_get_unit_number(vp->channel.mc_head->hdw);