aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)