Commit 6a540254 authored by Mike Isely's avatar Mike Isely Committed by Mauro Carvalho Chehab

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: default avatarMike Isely <isely@pobox.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent ea2562d9
...@@ -29,9 +29,8 @@ pvr2_device_desc structures. ...@@ -29,9 +29,8 @@ pvr2_device_desc structures.
#include "pvrusb2-devattr.h" #include "pvrusb2-devattr.h"
#include <linux/usb.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/i2c.h>
#include <linux/videodev2.h>
#include <media/tuner.h> #include <media/tuner.h>
/* Known major hardware variants, keyed from device ID */ /* Known major hardware variants, keyed from device ID */
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#define __PVRUSB2_DEVATTR_H #define __PVRUSB2_DEVATTR_H
#include <linux/mod_devicetable.h> #include <linux/mod_devicetable.h>
#include <linux/videodev2.h>
/* /*
...@@ -69,6 +70,12 @@ struct pvr2_device_desc { ...@@ -69,6 +70,12 @@ struct pvr2_device_desc {
driver could not discover the type any other way). */ driver could not discover the type any other way). */
int default_tuner_type; 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. */ /* If set, we don't bother trying to load cx23416 firmware. */
char flag_skip_cx23416_firmware; char flag_skip_cx23416_firmware;
......
...@@ -1439,8 +1439,12 @@ static v4l2_std_id get_default_standard(struct pvr2_hdw *hdw) ...@@ -1439,8 +1439,12 @@ static v4l2_std_id get_default_standard(struct pvr2_hdw *hdw)
int tp = 0; int tp = 0;
if ((unit_number >= 0) && (unit_number < PVR_NUM)) { if ((unit_number >= 0) && (unit_number < PVR_NUM)) {
tp = video_std[unit_number]; 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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment