Commit d536e9c4 authored by Chris Pascoe's avatar Chris Pascoe Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (4497): Reset USB part of DViCO Dual Digital during PCI driver attach



If the FX2 does not reset properly during reboot, it can present an
invalid USB device ID and fail to attach.  Prevent this situation
from occuring by resetting the USB part of the card when the PCI part
probes.
Also fix the GPIO configurations so that analog capture will not
inadvertantly reset the USB part.

Signed-off-by: default avatarChris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent fc3398d8
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -1041,11 +1041,11 @@ struct cx88_board cx88_boards[] = {
		.input          = {{
			.type   = CX88_VMUX_COMPOSITE1,
			.vmux   = 1,
			.gpio0  = 0x000027df,
			.gpio0  = 0x000067df,
		 },{
			.type   = CX88_VMUX_SVIDEO,
			.vmux   = 2,
			.gpio0  = 0x000027df,
			.gpio0  = 0x000067df,
		}},
		.dvb            = 1,
	},
@@ -1759,9 +1759,15 @@ void cx88_card_setup(struct cx88_core *core)
		cx_write(MO_GP0_IO, 0x000007f8);
		cx_write(MO_GP1_IO, 0x00000001);
		break;
	case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL:
		/* GPIO0:6 is hooked to FX2 reset pin */
		cx_set(MO_GP0_IO, 0x00004040);
		cx_clear(MO_GP0_IO, 0x00000040);
		msleep(1000);
		cx_set(MO_GP0_IO, 0x00004040);
		/* FALLTHROUGH */
	case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1:
	case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS:
	case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL:
	case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID:
		/* GPIO0:0 is hooked to mt352 reset pin */
		cx_set(MO_GP0_IO, 0x00000101);