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

Commit 660acd54 authored by Matthias Schwarzott's avatar Matthias Schwarzott Committed by Mauro Carvalho Chehab
Browse files

[media] cx231xx: drop unconditional port3 switching



All switching should be done by i2c mux adapters.
Drop explicit dont_use_port_3 flag.
Drop info message about switch.

Only the removed code in start_streaming is questionable:
It did switch the port_3 flag without accessing i2c in between.

Signed-off-by: default avatarMatthias Schwarzott <zzam@gentoo.org>
Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 15c212dd
Loading
Loading
Loading
Loading
+0 −18
Original line number Diff line number Diff line
@@ -1270,9 +1270,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
	int status = 0;
	bool current_is_port_3;

	if (dev->board.dont_use_port_3)
		is_port_3 = false;

	/*
	 * Should this code check dev->port_3_switch_enabled first
	 * to skip unnecessary reading of the register?
@@ -1296,9 +1293,6 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
	else
		value[0] &= ~I2C_DEMOD_EN;

	cx231xx_info("Changing the i2c master port to %d\n",
		     is_port_3 ?  3 : 1);

	status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
					PWR_CTL_EN, value, 4);

@@ -2329,9 +2323,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
		}

		if (dev->board.tuner_type != TUNER_ABSENT) {
			/* Enable tuner */
			cx231xx_enable_i2c_port_3(dev, true);

			/* reset the Tuner */
			if (dev->board.tuner_gpio)
				cx231xx_gpio_set(dev, dev->board.tuner_gpio);
@@ -2396,15 +2387,6 @@ int cx231xx_set_power_mode(struct cx231xx *dev, enum AV_MODE mode)
		}

		if (dev->board.tuner_type != TUNER_ABSENT) {
			/*
			 * Enable tuner
			 *	Hauppauge Exeter seems to need to do something different!
			 */
			if (dev->model == CX231XX_BOARD_HAUPPAUGE_EXETER)
				cx231xx_enable_i2c_port_3(dev, false);
			else
				cx231xx_enable_i2c_port_3(dev, true);

			/* reset the Tuner */
			if (dev->board.tuner_gpio)
				cx231xx_gpio_set(dev, dev->board.tuner_gpio);
+0 −8
Original line number Diff line number Diff line
@@ -262,7 +262,6 @@ struct cx231xx_board cx231xx_boards[] = {
		.norm = V4L2_STD_PAL,
		.no_alt_vanc = 1,
		.external_av = 1,
		.dont_use_port_3 = 1,
		/* Actually, it has a 417, but it isn't working correctly.
		 * So set to 0 for now until someone can manage to get this
		 * to work reliably. */
@@ -390,7 +389,6 @@ struct cx231xx_board cx231xx_boards[] = {
		.norm = V4L2_STD_NTSC,
		.no_alt_vanc = 1,
		.external_av = 1,
		.dont_use_port_3 = 1,
		.input = {{
			.type = CX231XX_VMUX_COMPOSITE1,
			.vmux = CX231XX_VIN_2_1,
@@ -532,7 +530,6 @@ struct cx231xx_board cx231xx_boards[] = {
		.norm = V4L2_STD_NTSC,
		.no_alt_vanc = 1,
		.external_av = 1,
		.dont_use_port_3 = 1,

		.input = {{
				.type = CX231XX_VMUX_COMPOSITE1,
@@ -656,7 +653,6 @@ struct cx231xx_board cx231xx_boards[] = {
		.norm = V4L2_STD_NTSC,
		.no_alt_vanc = 1,
		.external_av = 1,
		.dont_use_port_3 = 1,
		.input = {{
			.type = CX231XX_VMUX_COMPOSITE1,
			.vmux = CX231XX_VIN_2_1,
@@ -683,7 +679,6 @@ struct cx231xx_board cx231xx_boards[] = {
		.norm = V4L2_STD_NTSC,
		.no_alt_vanc = 1,
		.external_av = 1,
		.dont_use_port_3 = 1,
		/*.has_417 = 1, */
		/* This board is believed to have a hardware encoding chip
		 * supporting mpeg1/2/4, but as the 417 is apparently not
@@ -1012,9 +1007,6 @@ static int read_eeprom(struct cx231xx *dev, struct i2c_client *client,
		len_todo -= msg_read.len;
	}

	cx231xx_enable_i2c_port_3(dev, true);
	/* mutex_unlock(&dev->i2c_lock); */

	for (i = 0; i + 15 < len; i += 16)
		cx231xx_info("i2c eeprom %02x: %*ph\n", i, 16, &eedata[i]);

+1 −3
Original line number Diff line number Diff line
@@ -1407,9 +1407,7 @@ int cx231xx_dev_init(struct cx231xx *dev)
	if (dev->board.has_dvb)
		cx231xx_set_alt_setting(dev, INDEX_TS1, 0);

	/* set the I2C master port to 3 on channel 1 */
	errCode = cx231xx_enable_i2c_port_3(dev, true);

	errCode = 0;
	return errCode;
}
EXPORT_SYMBOL_GPL(cx231xx_dev_init);
+0 −4
Original line number Diff line number Diff line
@@ -266,11 +266,7 @@ static int start_streaming(struct cx231xx_dvb *dvb)

	if (dev->USE_ISO) {
		cx231xx_info("DVB transfer mode is ISO.\n");
		mutex_lock(&dev->i2c_lock);
		cx231xx_enable_i2c_port_3(dev, false);
		cx231xx_set_alt_setting(dev, INDEX_TS1, 4);
		cx231xx_enable_i2c_port_3(dev, true);
		mutex_unlock(&dev->i2c_lock);
		rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE);
		if (rc < 0)
			return rc;
+0 −1
Original line number Diff line number Diff line
@@ -368,7 +368,6 @@ struct cx231xx_board {
	unsigned int valid:1;
	unsigned int no_alt_vanc:1;
	unsigned int external_av:1;
	unsigned int dont_use_port_3:1;

	unsigned char xclk, i2c_speed;