aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Pascoe <c.pascoe@itee.uq.edu.au>2006-08-10 02:22:21 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-09-26 11:30:32 -0400
commitd536e9c41f78c9959c585181f8a1e7fe8b157197 (patch)
treeb6d87415ba6952f80598a773bb937803dfb774ff
parentfc3398d8b317bebe542f57c65572d9b9f52112f7 (diff)
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>
-rw-r--r--drivers/media/video/cx88/cx88-cards.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index ba3ff57bba75..29ba5d53ce34 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1041,11 +1041,11 @@ struct cx88_board cx88_boards[] = {
1041 .input = {{ 1041 .input = {{
1042 .type = CX88_VMUX_COMPOSITE1, 1042 .type = CX88_VMUX_COMPOSITE1,
1043 .vmux = 1, 1043 .vmux = 1,
1044 .gpio0 = 0x000027df, 1044 .gpio0 = 0x000067df,
1045 },{ 1045 },{
1046 .type = CX88_VMUX_SVIDEO, 1046 .type = CX88_VMUX_SVIDEO,
1047 .vmux = 2, 1047 .vmux = 2,
1048 .gpio0 = 0x000027df, 1048 .gpio0 = 0x000067df,
1049 }}, 1049 }},
1050 .dvb = 1, 1050 .dvb = 1,
1051 }, 1051 },
@@ -1759,9 +1759,15 @@ void cx88_card_setup(struct cx88_core *core)
1759 cx_write(MO_GP0_IO, 0x000007f8); 1759 cx_write(MO_GP0_IO, 0x000007f8);
1760 cx_write(MO_GP1_IO, 0x00000001); 1760 cx_write(MO_GP1_IO, 0x00000001);
1761 break; 1761 break;
1762 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL:
1763 /* GPIO0:6 is hooked to FX2 reset pin */
1764 cx_set(MO_GP0_IO, 0x00004040);
1765 cx_clear(MO_GP0_IO, 0x00000040);
1766 msleep(1000);
1767 cx_set(MO_GP0_IO, 0x00004040);
1768 /* FALLTHROUGH */
1762 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: 1769 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1:
1763 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS: 1770 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS:
1764 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL:
1765 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID: 1771 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID:
1766 /* GPIO0:0 is hooked to mt352 reset pin */ 1772 /* GPIO0:0 is hooked to mt352 reset pin */
1767 cx_set(MO_GP0_IO, 0x00000101); 1773 cx_set(MO_GP0_IO, 0x00000101);