summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2006-09-19 12:51:56 -0300
committerPatrick Boettcher <pb@linuxtv.org>2006-09-19 12:51:56 -0300
commite7d20687141fe2641051b2698831e995f4965a7d (patch)
tree72e12df1ca8ac6284217c6c8ae6a653ff0c6e311 /linux
parenta35eeb1c83784723edd435ab03dff6628e60b3db (diff)
downloadmediapointer-dvb-s2-e7d20687141fe2641051b2698831e995f4965a7d.tar.gz
mediapointer-dvb-s2-e7d20687141fe2641051b2698831e995f4965a7d.tar.bz2
Misc fixes for Nova-T 500
From: Patrick Boettcher <pb@linuxtv.org> - forward the clock to the slave undivided - when sleeping the 3000 do not shutdown the clock Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/dvb/dvb-usb/dib0700_core.c4
-rw-r--r--linux/drivers/media/dvb/dvb-usb/dib0700_devices.c2
-rw-r--r--linux/drivers/media/dvb/frontends/dib3000mc.c9
-rw-r--r--linux/drivers/media/dvb/frontends/mt2060.h2
4 files changed, 10 insertions, 7 deletions
diff --git a/linux/drivers/media/dvb/dvb-usb/dib0700_core.c b/linux/drivers/media/dvb/dvb-usb/dib0700_core.c
index 27fda6b09..47339cfe7 100644
--- a/linux/drivers/media/dvb/dvb-usb/dib0700_core.c
+++ b/linux/drivers/media/dvb/dvb-usb/dib0700_core.c
@@ -103,8 +103,10 @@ static int dib0700_i2c_xfer(struct i2c_adapter *adap,struct i2c_msg *msg,int num
buf[1] |= 1;
/* 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;
+ }
msg[i+1].len = len;
diff --git a/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c b/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 182051011..9347febaa 100644
--- a/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -17,7 +17,7 @@
static struct mt2060_config bristol_mt2060_config[2] = {
{
.i2c_address = 0x60,
- .clock_out = 1,
+ .clock_out = 3,
}, {
.i2c_address = 0x61,
}
diff --git a/linux/drivers/media/dvb/frontends/dib3000mc.c b/linux/drivers/media/dvb/frontends/dib3000mc.c
index 5f834a966..555f7d43d 100644
--- a/linux/drivers/media/dvb/frontends/dib3000mc.c
+++ b/linux/drivers/media/dvb/frontends/dib3000mc.c
@@ -336,10 +336,10 @@ static int dib3000mc_init(struct dvb_frontend *demod)
dib3000mc_write_word(state, 175, 0x0000);
dib3000mc_write_word(state, 1032, 0x012C);
}
- dib3000mc_write_word(state, 1033, 0);
+ dib3000mc_write_word(state, 1033, 0x0000);
// P_clk_cfg
- dib3000mc_write_word(state, 1037, 12592);
+ dib3000mc_write_word(state, 1037, 0x3130);
// other configurations
@@ -436,10 +436,9 @@ static int dib3000mc_sleep(struct dvb_frontend *demod)
{
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, 1032, 0xFFFF);
- dib3000mc_write_word(state, 1033, 0xFFF4); // **** Bin2
+ dib3000mc_write_word(state, 1033, 0xFFF0);
return 0;
}
@@ -861,6 +860,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);
+ dib3000mc_write_word(st, 1037, 0x3130);
+
return demod;
error:
diff --git a/linux/drivers/media/dvb/frontends/mt2060.h b/linux/drivers/media/dvb/frontends/mt2060.h
index fc12c790f..34a37c2b5 100644
--- a/linux/drivers/media/dvb/frontends/mt2060.h
+++ b/linux/drivers/media/dvb/frontends/mt2060.h
@@ -27,7 +27,7 @@ struct i2c_adapter;
struct mt2060_config {
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);