Commit 8153c3b7 authored by Steven Toth's avatar Steven Toth Committed by Mauro Carvalho Chehab

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: default avatarSteven Toth <stoth@linuxtv.org>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 38092a44
...@@ -689,6 +689,9 @@ static int tda10048_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) ...@@ -689,6 +689,9 @@ static int tda10048_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
struct tda10048_state *state = fe->demodulator_priv; struct tda10048_state *state = fe->demodulator_priv;
dprintk(1, "%s(%d)\n", __func__, enable); dprintk(1, "%s(%d)\n", __func__, enable);
if (state->config->disable_gate_access)
return 0;
if (enable) if (enable)
return tda10048_writereg(state, TDA10048_CONF_C4_1, return tda10048_writereg(state, TDA10048_CONF_C4_1,
tda10048_readreg(state, TDA10048_CONF_C4_1) | 0x02); tda10048_readreg(state, TDA10048_CONF_C4_1) | 0x02);
......
...@@ -57,6 +57,9 @@ struct tda10048_config { ...@@ -57,6 +57,9 @@ struct tda10048_config {
#define TDA10048_CLK_4000 4000 #define TDA10048_CLK_4000 4000
#define TDA10048_CLK_16000 16000 #define TDA10048_CLK_16000 16000
u16 clk_freq_khz; u16 clk_freq_khz;
/* Disable I2C gate access */
u8 disable_gate_access;
}; };
#if defined(CONFIG_DVB_TDA10048) || \ #if defined(CONFIG_DVB_TDA10048) || \
......
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