summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2006-01-15 21:31:10 -0200
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-01-15 21:31:10 -0200
commit21e2379b9ef705fcb3ba3be738decd3397fc30b7 (patch)
tree6e4f5334547aa538150fe52b60bfe014425eb53b /include
parentd04ae27bae42bcce1b3fa70ca2edf25d92b1cf39 (diff)
parent366cc64b0d9ac922ac4f0f54e06c13ec95249928 (diff)
downloadlinux-21e2379b9ef705fcb3ba3be738decd3397fc30b7.tar.gz
Merge branch 'work'
Diffstat (limited to 'include')
-rw-r--r--include/media/tuner-types.h20
-rw-r--r--include/media/tuner.h8
-rw-r--r--include/media/v4l2-common.h7
3 files changed, 31 insertions, 4 deletions
diff --git a/include/media/tuner-types.h b/include/media/tuner-types.h
index 64b16b1f1926..15821ab14a9e 100644
--- a/include/media/tuner-types.h
+++ b/include/media/tuner-types.h
@@ -19,6 +19,25 @@ struct tuner_range {
 
 struct tuner_params {
 	enum param_type type;
+	/* Many Philips based tuners have a comment like this in their
+	 * datasheet:
+	 *
+	 *   For channel selection involving band switching, and to ensure
+	 *   smooth tuning to the desired channel without causing
+	 *   unnecessary charge pump action, it is recommended to consider
+	 *   the difference between wanted channel frequency and the
+	 *   current channel frequency.  Unnecessary charge pump action
+	 *   will result in very low tuning voltage which may drive the
+	 *   oscillator to extreme conditions.
+	 *
+	 * Set cb_first_if_lower_freq to 1, if this check is
+	 * required for this tuner.
+	 *
+	 * I tested this for PAL by first setting the TV frequency to
+	 * 203 MHz and then switching to 96.6 MHz FM radio. The result was
+	 * static unless the control byte was sent first.
+	 */
+	unsigned int cb_first_if_lower_freq:1;
 	unsigned char config; /* to be moved into struct tuner_range for dvb-pll merge */
 
 	unsigned int count;
@@ -27,7 +46,6 @@ struct tuner_params {
 
 struct tunertype {
 	char *name;
-	unsigned int has_tda988x:1;
 	struct tuner_params *params;
 };
 
diff --git a/include/media/tuner.h b/include/media/tuner.h
index a1d63787bc08..a5beeac495c7 100644
--- a/include/media/tuner.h
+++ b/include/media/tuner.h
@@ -179,7 +179,9 @@ struct tuner {
 	unsigned int mode;
 	unsigned int mode_mask;	/* Combination of allowable modes */
 
-	unsigned int freq;	/* keep track of the current settings */
+	unsigned int tv_freq;	/* keep track of the current settings */
+	unsigned int radio_freq;
+	u16 	     last_div;
 	unsigned int audmode;
 	v4l2_std_id  std;
 
@@ -197,8 +199,8 @@ struct tuner {
 	unsigned int sgIF;
 
 	/* function ptrs */
-	void (*tv_freq)(struct i2c_client *c, unsigned int freq);
-	void (*radio_freq)(struct i2c_client *c, unsigned int freq);
+	void (*set_tv_freq)(struct i2c_client *c, unsigned int freq);
+	void (*set_radio_freq)(struct i2c_client *c, unsigned int freq);
 	int  (*has_signal)(struct i2c_client *c);
 	int  (*is_stereo)(struct i2c_client *c);
 	void (*standby)(struct i2c_client *c);
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index c74052abb189..d4030a7e16e0 100644
--- a/include/media/v4l2-common.h
+++ b/include/media/v4l2-common.h
@@ -120,6 +120,13 @@ enum v4l2_chip_ident {
 /* select from TV,radio,extern,MUTE */
 #define AUDC_SET_INPUT        _IOW('d',89,int)
 
+/* msp3400 ioctl: will be removed in the near future */
+struct msp_matrix {
+  int input;
+  int output;
+};
+#define MSP_SET_MATRIX     _IOW('m',17,struct msp_matrix)
+
 /* tuner ioctls */
 /* Sets tuner type and its I2C addr */
 #define TUNER_SET_TYPE_ADDR          _IOW('d',90,int)