aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2009-05-05 18:30:27 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 17:21:01 -0400
commit8153c3b7d80a2058f91fb0b4ef49190f241ecc34 (patch)
tree1d115e6318f5611a56ae971c6510a5456ae38e77 /drivers/media/dvb/frontends
parent38092a4402e0df6f1f283ff6e455197035266ce7 (diff)
V4L/DVB (11700): tda10048: Added option to block i2c gate control from other drivers.
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. Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends')
-rw-r--r--drivers/media/dvb/frontends/tda10048.c3
-rw-r--r--drivers/media/dvb/frontends/tda10048.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/dvb/frontends/tda10048.c b/drivers/media/dvb/frontends/tda10048.c
index dfa3e2ccc741..11be4697cb3d 100644
--- a/drivers/media/dvb/frontends/tda10048.c
+++ b/drivers/media/dvb/frontends/tda10048.c
@@ -689,6 +689,9 @@ static int tda10048_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
689 struct tda10048_state *state = fe->demodulator_priv; 689 struct tda10048_state *state = fe->demodulator_priv;
690 dprintk(1, "%s(%d)\n", __func__, enable); 690 dprintk(1, "%s(%d)\n", __func__, enable);
691 691
692 if (state->config->disable_gate_access)
693 return 0;
694
692 if (enable) 695 if (enable)
693 return tda10048_writereg(state, TDA10048_CONF_C4_1, 696 return tda10048_writereg(state, TDA10048_CONF_C4_1,
694 tda10048_readreg(state, TDA10048_CONF_C4_1) | 0x02); 697 tda10048_readreg(state, TDA10048_CONF_C4_1) | 0x02);
diff --git a/drivers/media/dvb/frontends/tda10048.h b/drivers/media/dvb/frontends/tda10048.h
index ab9cf5bd421e..ee07b50e90d1 100644
--- a/drivers/media/dvb/frontends/tda10048.h
+++ b/drivers/media/dvb/frontends/tda10048.h
@@ -57,6 +57,9 @@ struct tda10048_config {
57#define TDA10048_CLK_4000 4000 57#define TDA10048_CLK_4000 4000
58#define TDA10048_CLK_16000 16000 58#define TDA10048_CLK_16000 16000
59 u16 clk_freq_khz; 59 u16 clk_freq_khz;
60
61 /* Disable I2C gate access */
62 u8 disable_gate_access;
60}; 63};
61 64
62#if defined(CONFIG_DVB_TDA10048) || \ 65#if defined(CONFIG_DVB_TDA10048) || \