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: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
fc3398d8b3
commit
d536e9c41f
1 changed files with 9 additions and 3 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue