aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2007-08-24 00:13:07 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-10-09 21:08:30 -0400
commita1dec5160d6e536b409761c1914500f4a7cf08c2 (patch)
treefef93175b8ffef742414c751aa2c885b5c222414
parent3c44358c49ee4142d0f868509b5b3b02759fa16a (diff)
V4L/DVB (6180): tuner: don't probe 0x6b or 0x6f on cx88 boards
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>
-rw-r--r--drivers/media/video/tuner-core.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index 2f74379f4e4b..2d4a3e38f278 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -661,6 +661,27 @@ static int tuner_probe(struct i2c_adapter *adap)
661 normal_i2c[1] = I2C_CLIENT_END; 661 normal_i2c[1] = I2C_CLIENT_END;
662 } 662 }
663 663
664 /* HACK: Ignore 0x6b and 0x6f on cx88 boards.
665 * FusionHDTV5 RT Gold has an ir receiver at 0x6b
666 * and an RTC at 0x6f which can get corrupted if probed.
667 */
668 if (adap->id == I2C_HW_B_CX2388x) {
669 unsigned int i = 0;
670
671 while (i < I2C_CLIENT_MAX_OPTS && ignore[i] != I2C_CLIENT_END)
672 i += 2;
673 if (i + 4 < I2C_CLIENT_MAX_OPTS) {
674 ignore[i+0] = adap->nr;
675 ignore[i+1] = 0x6b;
676 ignore[i+2] = adap->nr;
677 ignore[i+3] = 0x6f;
678 ignore[i+4] = I2C_CLIENT_END;
679 } else
680 printk(KERN_WARNING "tuner: "
681 "too many options specified "
682 "in i2c probe ignore list!\n");
683 }
684
664 default_mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV; 685 default_mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;
665 686
666 if (adap->class & I2C_CLASS_TV_ANALOG) 687 if (adap->class & I2C_CLASS_TV_ANALOG)