[PATCH] v4l: add DVB support for DViCO FusionHDTV3 Gold-T
authorMichael Krufky <mkrufky@m1k.net>
Fri, 8 Jul 2005 00:58:42 +0000 (17:58 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 8 Jul 2005 01:24:04 +0000 (18:24 -0700)
- Correct sync byte for MPEG-2 transport stream packets.
- Add lgdt3302 as dependency of cx88-dvb in Kconfig.
- Add dvb support in v4l for DViCO FusionHDTV3 Gold-T using lgdt3302 frontend.
  This adds support for a different board from the previous (Gold-Q) patch.

Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/media/dvb/frontends/dvb-pll.c
drivers/media/dvb/frontends/dvb-pll.h
drivers/media/video/Kconfig
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-mpeg.c

index 71e06ec7925aa834208751ac00c951d012f99b40..5afeaa9b43b4d6fcfb6b0772a683f097cdb36f29 100644 (file)
@@ -106,6 +106,19 @@ struct dvb_pll_desc dvb_pll_microtune_4042 = {
 };
 EXPORT_SYMBOL(dvb_pll_microtune_4042);
 
+struct dvb_pll_desc dvb_pll_thomson_dtt7611 = {
+       .name  = "Thomson dtt7611",
+       .min   =  44000000,
+       .max   = 958000000,
+       .count = 3,
+       .entries = {
+               { 157250000, 44000000, 62500, 0x8e, 0x39 },
+               { 454000000, 44000000, 62500, 0x8e, 0x3a },
+               { 999999999, 44000000, 62500, 0x8e, 0x3c },
+       },
+};
+EXPORT_SYMBOL(dvb_pll_thomson_dtt7611);
+
 struct dvb_pll_desc dvb_pll_unknown_1 = {
        .name  = "unknown 1", /* used by dntv live dvb-t */
        .min   = 174000000,
index 98312bfe59d0a821de43c667edaa0731613bab41..cb794759d89ede20b028816bd5c40c6140391a5a 100644 (file)
@@ -25,6 +25,7 @@ extern struct dvb_pll_desc dvb_pll_thomson_dtt759x;
 extern struct dvb_pll_desc dvb_pll_thomson_dtt7610;
 extern struct dvb_pll_desc dvb_pll_lg_z201;
 extern struct dvb_pll_desc dvb_pll_microtune_4042;
+extern struct dvb_pll_desc dvb_pll_thomson_dtt7611;
 extern struct dvb_pll_desc dvb_pll_unknown_1;
 
 extern struct dvb_pll_desc dvb_pll_tua6010xs;
index 1b70f8b0feb9fa1f32d10715a657edc114dc73a3..e771064689e6e1756013537eb952f384d36b3e7a 100644 (file)
@@ -344,6 +344,7 @@ config VIDEO_CX88_DVB
        select DVB_MT352
        select DVB_OR51132
        select DVB_CX22702
+       select DVB_LGDT3302
        ---help---
          This adds support for DVB/ATSC cards based on the
          Connexant 2388x chip.
index eeca2f3f2a08d7550c07981c7a4e60df4a2e2cf9..b0b47c3cde3c8cce18954bc7ee3844d77645c82d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cx88-cards.c,v 1.84 2005/07/02 19:42:09 mkrufky Exp $
+ * $Id: cx88-cards.c,v 1.85 2005/07/04 19:35:05 mkrufky Exp $
  *
  * device driver for Conexant 2388x based TV cards
  * card-specific stuff.
@@ -723,6 +723,7 @@ struct cx88_board cx88_boards[] = {
                         .vmux   = 2,
                         .gpio0  = 0x0f00,
                 }},
+               .dvb            = 1,
         },
         [CX88_BOARD_ADSTECH_DVB_T_PCI] = {
                 .name           = "ADS Tech Instant TV DVB-T PCI",
index 806afc610d87022c3fbf3c421e96be3598f88718..690477a679178ee321a5dbba01671cc63197f674 100644 (file)
@@ -220,6 +220,13 @@ static struct lgdt3302_config fusionhdtv_3_gold_q = {
        .pll_desc         = &dvb_pll_microtune_4042,
        .set_ts_params    = lgdt3302_set_ts_param,
 };
+
+static struct lgdt3302_config fusionhdtv_3_gold_t = {
+       .demod_address    = 0x0e,
+       .pll_address      = 0x61,
+       .pll_desc         = &dvb_pll_thomson_dtt7611,
+       .set_ts_params    = lgdt3302_set_ts_param,
+};
 #endif
 
 static int dvb_register(struct cx8802_dev *dev)
@@ -282,6 +289,20 @@ static int dvb_register(struct cx8802_dev *dev)
                                                    &dev->core->i2c_adap);
                }
                break;
+       case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T:
+               dev->ts_gen_cntrl = 0x08;
+               {
+               /* Do a hardware reset of chip before using it. */
+               struct cx88_core *core = dev->core;
+
+               cx_clear(MO_GP0_IO, 1);
+               mdelay(100);
+               cx_set(MO_GP0_IO, 9); /* ANT connector too FIXME */
+               mdelay(200);
+               dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold_t,
+                                                   &dev->core->i2c_adap);
+               }
+               break;
 #endif
        default:
                printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
index c5f4c595239d72027c7dadfb63c8a1ea53d4d8b2..85da6dc8d0e0e81c50268526ef2b254914b7bda5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cx88-mpeg.c,v 1.28 2005/06/20 03:36:00 mkrufky Exp $
+ * $Id: cx88-mpeg.c,v 1.30 2005/07/05 19:44:40 mkrufky Exp $
  *
  *  Support for the mpeg transport stream transfers
  *  PCI function #2 of the cx2388x.
@@ -73,11 +73,11 @@ static int cx8802_start_dma(struct cx8802_dev    *dev,
                cx_write(TS_GEN_CNTRL, 0x0040 | dev->ts_gen_cntrl);
                udelay(100);
                cx_write(MO_PINMUX_IO, 0x00);
-               if (core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q) {
-                       cx_write(TS_HW_SOP_CNTRL,0x47<<16 | 188<<4 | 0x00);
+               cx_write(TS_HW_SOP_CNTRL,0x47<<16|188<<4|0x01);
+               if ((core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q) ||
+                   (core->board == CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T)) {
                        cx_write(TS_SOP_STAT, 0<<16 | 0<<14 | 1<<13 | 0<<12);
                } else {
-                       cx_write(TS_HW_SOP_CNTRL,47<<16|188<<4|0x00);
                        cx_write(TS_SOP_STAT,0x00);
                }
                cx_write(TS_GEN_CNTRL, dev->ts_gen_cntrl);