From e197760836fc4b0c7ac3411e6edd31dac68e5d82 Mon Sep 17 00:00:00 2001 From: Mike Isely Date: Sun, 2 Dec 2007 20:51:34 -0600 Subject: pvrusb2: Implement default standard selection based on device type From: Mike Isely 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 --- linux/drivers/media/video/pvrusb2/pvrusb2-devattr.c | 3 +-- linux/drivers/media/video/pvrusb2/pvrusb2-devattr.h | 7 +++++++ linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) (limited to 'linux/drivers/media/video/pvrusb2') diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.c b/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.c index e4a311a81..eed64571c 100644 --- a/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.c +++ b/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.c @@ -29,9 +29,8 @@ pvr2_device_desc structures. #include "pvrusb2-devattr.h" #include -/* All this is needed in order to pull in tuner type ids... */ +/* This is needed in order to pull in tuner type ids... */ #include -#include #include /* Known major hardware variants, keyed from device ID */ diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.h b/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.h index b9517e1ca..830f27961 100644 --- a/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.h +++ b/linux/drivers/media/video/pvrusb2/pvrusb2-devattr.h @@ -22,6 +22,7 @@ #define __PVRUSB2_DEVATTR_H #include +#include /* @@ -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/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c index b0e32a20c..8a27129b1 100644 --- a/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c +++ b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c @@ -1449,8 +1449,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; } -- cgit v1.2.3