summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb')
-rw-r--r--linux/drivers/media/dvb/frontends/tda1004x.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/frontends/tda1004x.c b/linux/drivers/media/dvb/frontends/tda1004x.c
index 213755246..0bb29fade 100644
--- a/linux/drivers/media/dvb/frontends/tda1004x.c
+++ b/linux/drivers/media/dvb/frontends/tda1004x.c
@@ -447,11 +447,21 @@ static int tda1004x_fwupload(struct dvb_i2c_bus *i2c, struct tda1004x_state *tda
// set some valid bandwith parameters before uploading
switch(tda_state->fe_type) {
case FE_TYPE_TDA10045H:
+ // reset chip
+ tda1004x_write_mask(i2c, tda_state, TDA1004X_CONFC4, 8, 8);
+ tda1004x_write_mask(i2c, tda_state, TDA1004X_CONFC4, 8, 0);
+ dvb_delay(10);
+
+ // set parameters
tda10045h_set_bandwidth(i2c, tda_state, BANDWIDTH_8_MHZ);
- dvb_delay(500);
break;
case FE_TYPE_TDA10046H:
+ // reset chip
+ tda1004x_write_mask(i2c, tda_state, TDA10046H_CONF_TRISTATE1, 1, 0);
+ dvb_delay(10);
+
+ // set parameters
tda1004x_write_byte(i2c, tda_state, TDA10046H_CONFPLL2, 10);
tda1004x_write_byte(i2c, tda_state, TDA10046H_CONFPLL3, 0);
tda1004x_write_byte(i2c, tda_state, TDA10046H_FREQ_OFFSET, 99);
@@ -564,10 +574,6 @@ static int tda10046h_init(struct dvb_i2c_bus *i2c, struct tda1004x_state *tda_st
dprintk("%s\n", __FUNCTION__);
- // reset chip
- tda1004x_write_mask(i2c, tda_state, TDA10046H_CONF_TRISTATE1, 1, 0);
- dvb_delay(10);
-
// Disable the MC44BC374C
tda1004x_enable_tuner_i2c(i2c, tda_state);
tuner_msg.addr = MC44BC374_ADDRESS;