TUNER_PARAM_TYPE_RADIO, \
TUNER_PARAM_TYPE_PAL, \
TUNER_PARAM_TYPE_SECAM, \
- TUNER_PARAM_TYPE_NTSC, \
- TUNER_PARAM_TYPE_ATSC, \
- TUNER_PARAM_TYPE_DVBT, \
- TUNER_PARAM_TYPE_DVBS, \
- TUNER_PARAM_TYPE_DVBC
+ TUNER_PARAM_TYPE_NTSC
};
struct tuner_range {
unsigned short limit;
+ unsigned char config;
unsigned char cb;
};
struct tuner_params {
enum param_type type;
- unsigned char config; /* to be moved into struct tuner_range for dvb-pll merge */
+ /* 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 int count;
struct tuner_range *ranges;
struct tunertype {
char *name;
- unsigned int has_tda988x:1;
+ unsigned int count;
struct tuner_params *params;
};