summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2009-05-05 18:30:27 -0400
committerSteven Toth <stoth@linuxtv.org>2009-05-05 18:30:27 -0400
commitae3601f13c4816b10e34a719b5f04ebcdc924879 (patch)
treed171adeabaab466a3aeb6cb56ad6f69ddfd30cde /linux/drivers/media
parent3e9d856b917d4d6e8f237885b014d299b73e6718 (diff)
downloadmediapointer-dvb-s2-ae3601f13c4816b10e34a719b5f04ebcdc924879.tar.gz
mediapointer-dvb-s2-ae3601f13c4816b10e34a719b5f04ebcdc924879.tar.bz2
tda10048: Added option to block i2c gate control from other drivers.
From: Steven Toth <stoth@linuxtv.org> Currently, DVB-T is broken and this fixes it. The PVRUSB2 has an odd I2C bus configuration where opening the i2c gate on the digital and analog demod causes the tuner to fail. This needs to be protected against for the PVRUSB2. Priority: high Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/dvb/frontends/tda10048.c3
-rw-r--r--linux/drivers/media/dvb/frontends/tda10048.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/frontends/tda10048.c b/linux/drivers/media/dvb/frontends/tda10048.c
index 2233e649e..3163aad5b 100644
--- a/linux/drivers/media/dvb/frontends/tda10048.c
+++ b/linux/drivers/media/dvb/frontends/tda10048.c
@@ -689,6 +689,9 @@ static int tda10048_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
struct tda10048_state *state = fe->demodulator_priv;
dprintk(1, "%s(%d)\n", __func__, enable);
+ if (state->config->disable_gate_access)
+ return 0;
+
if (enable)
return tda10048_writereg(state, TDA10048_CONF_C4_1,
tda10048_readreg(state, TDA10048_CONF_C4_1) | 0x02);
diff --git a/linux/drivers/media/dvb/frontends/tda10048.h b/linux/drivers/media/dvb/frontends/tda10048.h
index ab9cf5bd4..ee07b50e9 100644
--- a/linux/drivers/media/dvb/frontends/tda10048.h
+++ b/linux/drivers/media/dvb/frontends/tda10048.h
@@ -57,6 +57,9 @@ struct tda10048_config {
#define TDA10048_CLK_4000 4000
#define TDA10048_CLK_16000 16000
u16 clk_freq_khz;
+
+ /* Disable I2C gate access */
+ u8 disable_gate_access;
};
#if defined(CONFIG_DVB_TDA10048) || \