Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1dec516 authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab
Browse files

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: default avatarMichael Krufky <mkrufky@linuxtv.org>
Acked-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 3c44358c
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -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)