aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2007-12-02 23:51:34 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 19:03:06 -0200
commit6a540254966f8a01de0f7c78a27db17458c2d8f5 (patch)
treea18a62aa65b78b8fcbdfdbb3c3ce94a3a8bfa794
parentea2562d94fade3d6ee9b22ed5addbbdba697d22a (diff)
V4L/DVB (6705): pvrusb2: Implement default standard selection based on device type
This adds a default video standard setting to the pvr2_device_desc structure for describing device types. With this change it is possible to set a reasonable default standard based on device type. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-devattr.c3
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-devattr.h7
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c6
3 files changed, 13 insertions, 3 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.c b/drivers/media/video/pvrusb2/pvrusb2-devattr.c
index e4a311a8100..eed64571ca0 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-devattr.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.c
@@ -29,9 +29,8 @@ pvr2_device_desc structures.
#include "pvrusb2-devattr.h"
#include <linux/usb.h>
-/* All this is needed in order to pull in tuner type ids... */
+/* This is needed in order to pull in tuner type ids... */
#include <linux/i2c.h>
-#include <linux/videodev2.h>
#include <media/tuner.h>
/* Known major hardware variants, keyed from device ID */
diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.h b/drivers/media/video/pvrusb2/pvrusb2-devattr.h
index b9517e1cac0..830f27961e1 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-devattr.h
+++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.h
@@ -22,6 +22,7 @@
#define __PVRUSB2_DEVATTR_H
#include <linux/mod_devicetable.h>
+#include <linux/videodev2.h>
/*
@@ -69,6 +70,12 @@ struct pvr2_device_desc {
driver could not discover the type any other way). */
int default_tuner_type;
+ /* Initial standard bits to use for this device, if not zero.
+ Anything set here is also implied as an available standard.
+ Note: This is ignored if overridden on the module load line via
+ the video_std module option. */
+ v4l2_std_id default_std_mask;
+
/* If set, we don't bother trying to load cx23416 firmware. */
char flag_skip_cx23416_firmware;
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index a45721f7884..08b513b6014 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -1439,8 +1439,12 @@ static v4l2_std_id get_default_standard(struct pvr2_hdw *hdw)
int tp = 0;
if ((unit_number >= 0) && (unit_number < PVR_NUM)) {
tp = video_std[unit_number];
+ if (tp) return tp;
}
- return tp;
+ if (hdw->hdw_desc->default_std_mask) {
+ return hdw->hdw_desc->default_std_mask;
+ }
+ return 0;
}