Browse Source

V4L/DVB (11626): cx23885: Two fixes for DViCO FusionHDTV DVB-T Dual Express

Two fixes for DViCO FusionHDTV DVB-T Dual Express:

 * Reset correct tuner when reinitializing xc3028.
 * Disable the I2C gate control to avoid locking up the I2C bus.

Tested-by: John Knops <jknops@australiaonline.net.au>
Reviewed-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Christopher Pascoe <linuxdvb@itee.uq.edu.au>
Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Christopher Pascoe 16 years ago
parent
commit
d4dc673da9

+ 2 - 2
drivers/media/video/cx23885/cx23885-cards.c

@@ -441,9 +441,9 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg)
 	case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP:
 	case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP:
 		/* Two identical tuners on two different i2c buses,
 		/* Two identical tuners on two different i2c buses,
 		 * we need to reset the correct gpio. */
 		 * we need to reset the correct gpio. */
-		if (port->nr == 0)
+		if (port->nr == 1)
 			bitmask = 0x01;
 			bitmask = 0x01;
-		else if (port->nr == 1)
+		else if (port->nr == 2)
 			bitmask = 0x04;
 			bitmask = 0x04;
 		break;
 		break;
 	}
 	}

+ 1 - 0
drivers/media/video/cx23885/cx23885-dvb.c

@@ -314,6 +314,7 @@ static struct zl10353_config dvico_fusionhdtv_xc3028 = {
 	.demod_address = 0x0f,
 	.demod_address = 0x0f,
 	.if2           = 45600,
 	.if2           = 45600,
 	.no_tuner      = 1,
 	.no_tuner      = 1,
+	.disable_i2c_gate_ctrl = 1,
 };
 };
 
 
 static struct stv0900_config netup_stv0900_config = {
 static struct stv0900_config netup_stv0900_config = {