Commit 303cbeaa authored by Patrick Boettcher's avatar Patrick Boettcher Committed by Mauro Carvalho Chehab

V4L/DVB (4653): Misc fixes for Nova-T 500

- forward the clock to the slave undivided
- when sleeping the 3000 do not shutdown the clock
Signed-off-by: default avatarPatrick Boettcher <pb@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 01b4bf31
...@@ -103,8 +103,10 @@ static int dib0700_i2c_xfer(struct i2c_adapter *adap,struct i2c_msg *msg,int num ...@@ -103,8 +103,10 @@ static int dib0700_i2c_xfer(struct i2c_adapter *adap,struct i2c_msg *msg,int num
buf[1] |= 1; buf[1] |= 1;
/* special thing in the current firmware: when length is zero the read-failed */ /* special thing in the current firmware: when length is zero the read-failed */
if ((len = dib0700_ctrl_rd(d, buf, msg[i].len + 2, msg[i+1].buf, msg[i+1].len)) <= 0) if ((len = dib0700_ctrl_rd(d, buf, msg[i].len + 2, msg[i+1].buf, msg[i+1].len)) <= 0) {
deb_info("I2C read failed on address %x\n", msg[i].addr);
break; break;
}
msg[i+1].len = len; msg[i+1].len = len;
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
static struct mt2060_config bristol_mt2060_config[2] = { static struct mt2060_config bristol_mt2060_config[2] = {
{ {
.i2c_address = 0x60, .i2c_address = 0x60,
.clock_out = 1, .clock_out = 3,
}, { }, {
.i2c_address = 0x61, .i2c_address = 0x61,
} }
......
...@@ -312,10 +312,10 @@ static int dib3000mc_init(struct dvb_frontend *demod) ...@@ -312,10 +312,10 @@ static int dib3000mc_init(struct dvb_frontend *demod)
dib3000mc_write_word(state, 175, 0x0000); dib3000mc_write_word(state, 175, 0x0000);
dib3000mc_write_word(state, 1032, 0x012C); dib3000mc_write_word(state, 1032, 0x012C);
} }
dib3000mc_write_word(state, 1033, 0); dib3000mc_write_word(state, 1033, 0x0000);
// P_clk_cfg // P_clk_cfg
dib3000mc_write_word(state, 1037, 12592); dib3000mc_write_word(state, 1037, 0x3130);
// other configurations // other configurations
...@@ -412,10 +412,9 @@ static int dib3000mc_sleep(struct dvb_frontend *demod) ...@@ -412,10 +412,9 @@ static int dib3000mc_sleep(struct dvb_frontend *demod)
{ {
struct dib3000mc_state *state = demod->demodulator_priv; struct dib3000mc_state *state = demod->demodulator_priv;
dib3000mc_write_word(state, 1037, dib3000mc_read_word(state, 1037) | 0x0003);
dib3000mc_write_word(state, 1031, 0xFFFF); dib3000mc_write_word(state, 1031, 0xFFFF);
dib3000mc_write_word(state, 1032, 0xFFFF); dib3000mc_write_word(state, 1032, 0xFFFF);
dib3000mc_write_word(state, 1033, 0xFFF4); // **** Bin2 dib3000mc_write_word(state, 1033, 0xFFF0);
return 0; return 0;
} }
...@@ -828,6 +827,8 @@ struct dvb_frontend * dib3000mc_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr ...@@ -828,6 +827,8 @@ struct dvb_frontend * dib3000mc_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr
dibx000_init_i2c_master(&st->i2c_master, DIB3000MC, st->i2c_adap, st->i2c_addr); dibx000_init_i2c_master(&st->i2c_master, DIB3000MC, st->i2c_adap, st->i2c_addr);
dib3000mc_write_word(st, 1037, 0x3130);
return demod; return demod;
error: error:
......
...@@ -27,7 +27,7 @@ struct i2c_adapter; ...@@ -27,7 +27,7 @@ struct i2c_adapter;
struct mt2060_config { struct mt2060_config {
u8 i2c_address; u8 i2c_address;
u8 clock_out; /* 0 = off, 1 = CLK/1, 2 = CLK/2, 3 = CLK/4 */ u8 clock_out; /* 0 = off, 1 = CLK/4, 2 = CLK/2, 3 = CLK/1 */
}; };
extern struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1); extern struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1);
......
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