Skip to content

Commit

Permalink
V4L/DVB (6180): tuner: don't probe 0x6b or 0x6f on cx88 boards
Browse files Browse the repository at this point in the history
Ignore 0x6b and 0x6f on cx88 boards. Some FusionHDTV cards
have an ir receiver at 0x6b and an RTC at 0x6f which can
get corrupted if probed.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Oct 10, 2007
1 parent 3c44358 commit a1dec51
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions drivers/media/video/tuner-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,27 @@ static int tuner_probe(struct i2c_adapter *adap)
normal_i2c[1] = I2C_CLIENT_END;
}

/* HACK: Ignore 0x6b and 0x6f on cx88 boards.
* FusionHDTV5 RT Gold has an ir receiver at 0x6b
* and an RTC at 0x6f which can get corrupted if probed.
*/
if (adap->id == I2C_HW_B_CX2388x) {
unsigned int i = 0;

while (i < I2C_CLIENT_MAX_OPTS && ignore[i] != I2C_CLIENT_END)
i += 2;
if (i + 4 < I2C_CLIENT_MAX_OPTS) {
ignore[i+0] = adap->nr;
ignore[i+1] = 0x6b;
ignore[i+2] = adap->nr;
ignore[i+3] = 0x6f;
ignore[i+4] = I2C_CLIENT_END;
} else
printk(KERN_WARNING "tuner: "
"too many options specified "
"in i2c probe ignore list!\n");
}

default_mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;

if (adap->class & I2C_CLASS_TV_ANALOG)
Expand Down

0 comments on commit a1dec51

Please sign in to comment.