Skip to content

Commit

Permalink
[media] drxk: Allow to disable I2C Bridge control switch
Browse files Browse the repository at this point in the history
On em28xx, tda18271C2 is accessible when the i2c port
is not touched. Touching on it breaks the driver.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Mauro Carvalho Chehab committed Jul 27, 2011
1 parent bbc70e6 commit f1fe1b7
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 0 deletions.
1 change: 1 addition & 0 deletions drivers/media/dvb/frontends/drxk.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
struct drxk_config {
u8 adr;
u32 single_master : 1;
u32 no_i2c_bridge : 1;
const char *microcode_name;
};

Expand Down
3 changes: 3 additions & 0 deletions drivers/media/dvb/frontends/drxk_hard.c
Original file line number Diff line number Diff line change
Expand Up @@ -2784,6 +2784,8 @@ static int ConfigureI2CBridge(struct drxk_state *state, bool bEnableBridge)
if (state->m_DrxkState == DRXK_POWERED_DOWN)
return -1;

if (state->no_i2c_bridge)
return 0;
do {
status = write16(state, SIO_HI_RA_RAM_PAR_1__A, SIO_HI_RA_RAM_PAR_1_PAR1_SEC_KEY);
if (status < 0)
Expand Down Expand Up @@ -6360,6 +6362,7 @@ struct dvb_frontend *drxk_attach(const struct drxk_config *config,
state->demod_address = adr;
state->single_master = config->single_master;
state->microcode_name = config->microcode_name;
state->no_i2c_bridge = config->no_i2c_bridge;

mutex_init(&state->mutex);
mutex_init(&state->ctlock);
Expand Down
1 change: 1 addition & 0 deletions drivers/media/dvb/frontends/drxk_hard.h
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@ struct drxk_state {
/* Configurable parameters at the driver */

u32 single_master : 1; /* Use single master i2c mode */
u32 no_i2c_bridge : 1; /* Tuner is not on port 1, don't use I2C bridge */
const char *microcode_name;

};
Expand Down
1 change: 1 addition & 0 deletions drivers/media/video/em28xx/em28xx-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ static struct drxd_config em28xx_drxd = {
struct drxk_config terratec_h5_drxk = {
.adr = 0x29,
.single_master = 1,
.no_i2c_bridge = 1,
.microcode_name = "terratec_h5.fw",
};

Expand Down

0 comments on commit f1fe1b7

Please sign in to comment.