linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / media / video / cx88 / cx88-cards.c
index 14bd486..a24af92 100644 (file)
@@ -114,7 +114,7 @@ struct cx88_board cx88_boards[] = {
                .radio = {
                         .type  = CX88_RADIO,
                         .gpio0 = 0xff10,
-               },
+                },
        },
        [CX88_BOARD_ATI_WONDER_PRO] = {
                .name           = "ATI TV Wonder Pro",
@@ -184,18 +184,17 @@ struct cx88_board cx88_boards[] = {
                .input          = {{
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
-                       .gpio1  = 0xe09f,
+                       .gpio1  = 0x309f,
                },{
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
-                       .gpio1  = 0xe05f,
+                       .gpio1  = 0x305f,
                },{
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
-                       .gpio1  = 0xe05f,
+                       .gpio1  = 0x305f,
                }},
                .radio = {
-                       .gpio1  = 0xe0df,
                        .type   = CX88_RADIO,
                },
        },
@@ -267,7 +266,7 @@ struct cx88_board cx88_boards[] = {
                        .gpio1  = 0x00007004,
                        .gpio2  = 0x0035d700,
                        .gpio3  = 0x02000000,
-               },
+                },
        },
        [CX88_BOARD_LEADTEK_PVR2000] = {
                // gpio values for PAL version from regspy by DScaler
@@ -323,19 +322,19 @@ struct cx88_board cx88_boards[] = {
                .input          = {{
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
-                       .gpio0  = 0xbff0,
+                       .gpio0  = 0xff00,
                },{
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
-                       .gpio0  = 0xbff3,
+                       .gpio0  = 0xff03,
                },{
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
-                       .gpio0  = 0xbff3,
+                       .gpio0  = 0xff03,
                }},
                .radio = {
                        .type   = CX88_RADIO,
-                       .gpio0  = 0xbff0,
+                       .gpio0  = 0xff00,
                },
        },
        [CX88_BOARD_ASUS_PVR_416] = {
@@ -413,7 +412,7 @@ struct cx88_board cx88_boards[] = {
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
                        .gpio0  = 0x000027df,
-               },{
+                },{
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
                        .gpio0  = 0x000027df,
@@ -536,7 +535,7 @@ struct cx88_board cx88_boards[] = {
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
                        .gpio0  = 0x000027df,
-               },{
+                },{
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
                        .gpio0  = 0x000027df,
@@ -564,7 +563,7 @@ struct cx88_board cx88_boards[] = {
        },
        [CX88_BOARD_PCHDTV_HD3000] = {
                .name           = "pcHDTV HD3000 HDTV",
-               .tuner_type     = TUNER_THOMSON_DTT761X,
+               .tuner_type     = TUNER_THOMSON_DTT7610,
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
@@ -759,7 +758,7 @@ struct cx88_board cx88_boards[] = {
        },
        [CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD] = {
                .name           = "DViCO FusionHDTV 5 Gold",
-               .tuner_type     = TUNER_LG_TDVS_H06XF, /* TDVS-H062F */
+               .tuner_type     = TUNER_LG_TDVS_H062F,
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
@@ -1049,166 +1048,7 @@ struct cx88_board cx88_boards[] = {
                }},
                .dvb            = 1,
        },
-       [CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT] = {
-               /* FIXME: Audio not working for s-video / composite inputs. */
-               .name           = "KWorld HardwareMpegTV XPert",
-               .tuner_type     = TUNER_PHILIPS_TDA8290,
-               .radio_type     = UNSET,
-               .tuner_addr     = ADDR_UNSET,
-               .radio_addr     = ADDR_UNSET,
-               .input          = {{
-                       .type   = CX88_VMUX_TELEVISION,
-                       .vmux   = 0,
-                       .gpio0  = 0x3de2,
-                       .gpio2  = 0x00ff,
-               },{
-                       .type   = CX88_VMUX_COMPOSITE1,
-                       .vmux   = 1,
-                       .gpio0  = 0x3de6,
-               },{
-                       .type   = CX88_VMUX_SVIDEO,
-                       .vmux   = 2,
-                       .gpio0  = 0x3de6,
-               }},
-               .radio = {
-                       .type   = CX88_RADIO,
-                       .gpio0  = 0x3de6,
-                       .gpio2  = 0x00ff,
-               },
-               .blackbird      = 1,
-       },
-       [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID] = {
-               .name           = "DViCO FusionHDTV DVB-T Hybrid",
-               .tuner_type     = TUNER_THOMSON_FE6600,
-               .radio_type     = UNSET,
-               .tuner_addr     = ADDR_UNSET,
-               .radio_addr     = ADDR_UNSET,
-               .input          = {{
-                       .type   = CX88_VMUX_TELEVISION,
-                       .vmux   = 0,
-                       .gpio0  = 0x0000a75f,
-               },{
-                       .type   = CX88_VMUX_COMPOSITE1,
-                       .vmux   = 1,
-                       .gpio0  = 0x0000a75b,
-               },{
-                       .type   = CX88_VMUX_SVIDEO,
-                       .vmux   = 2,
-                       .gpio0  = 0x0000a75b,
-               }},
-               .dvb            = 1,
-       },
-       [CX88_BOARD_PCHDTV_HD5500] = {
-               .name           = "pcHDTV HD5500 HDTV",
-               .tuner_type     = TUNER_LG_TDVS_H06XF, /* TDVS-H064F */
-               .radio_type     = UNSET,
-               .tuner_addr     = ADDR_UNSET,
-               .radio_addr     = ADDR_UNSET,
-               .tda9887_conf   = TDA9887_PRESENT,
-               .input          = {{
-                       .type   = CX88_VMUX_TELEVISION,
-                       .vmux   = 0,
-                       .gpio0  = 0x87fd,
-               },{
-                       .type   = CX88_VMUX_COMPOSITE1,
-                       .vmux   = 1,
-                       .gpio0  = 0x87f9,
-               },{
-                       .type   = CX88_VMUX_SVIDEO,
-                       .vmux   = 2,
-                       .gpio0  = 0x87f9,
-               }},
-               .dvb            = 1,
-       },
-       [CX88_BOARD_KWORLD_MCE200_DELUXE] = {
-               /* FIXME: tested TV input only, disabled composite,
-                  svideo and radio until they can be tested also. */
-               .name           = "Kworld MCE 200 Deluxe",
-               .tuner_type     = TUNER_TENA_9533_DI,
-               .radio_type     = UNSET,
-               .tda9887_conf   = TDA9887_PRESENT,
-               .tuner_addr     = ADDR_UNSET,
-               .radio_addr     = ADDR_UNSET,
-               .input          = {{
-                       .type   = CX88_VMUX_TELEVISION,
-                       .vmux   = 0,
-                       .gpio0  = 0x0000BDE6
-               }},
-               .blackbird = 1,
-       },
-       [CX88_BOARD_PIXELVIEW_PLAYTV_P7000] = {
-               /* FIXME: SVideo, Composite and FM inputs are untested */
-               .name           = "PixelView PlayTV P7000",
-               .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
-               .radio_type     = UNSET,
-               .tuner_addr     = ADDR_UNSET,
-               .radio_addr     = ADDR_UNSET,
-               .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE |
-                                 TDA9887_PORT2_ACTIVE,
-               .input          = {{
-                       .type   = CX88_VMUX_TELEVISION,
-                       .vmux   = 0,
-                       .gpio0  = 0x5da6,
-               }},
-               .blackbird = 1,
-       },
-       [CX88_BOARD_NPGTECH_REALTV_TOP10FM] = {
-               .name           = "NPG Tech Real TV FM Top 10",
-               .tuner_type     = TUNER_TNF_5335MF, /* Actually a TNF9535 */
-               .radio_type     = UNSET,
-               .tuner_addr     = ADDR_UNSET,
-               .radio_addr     = ADDR_UNSET,
-               .input          = {{
-                       .type   = CX88_VMUX_TELEVISION,
-                       .vmux   = 0,
-                       .gpio0  = 0x0788,
-               },{
-                       .type   = CX88_VMUX_COMPOSITE1,
-                       .vmux   = 1,
-                       .gpio0  = 0x078b,
-               },{
-                       .type   = CX88_VMUX_SVIDEO,
-                       .vmux   = 2,
-                       .gpio0  = 0x078b,
-               }},
-               .radio = {
-                        .type  = CX88_RADIO,
-                        .gpio0 = 0x074a,
-               },
-       },
-       [CX88_BOARD_WINFAST_DTV2000H] = {
-               /* video inputs and radio still in testing */
-               .name           = "WinFast DTV2000 H",
-               .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
-               .radio_type     = UNSET,
-               .tuner_addr     = ADDR_UNSET,
-               .radio_addr     = ADDR_UNSET,
-               .tda9887_conf   = TDA9887_PRESENT,
-               .input          = {{
-                       .type   = CX88_VMUX_TELEVISION,
-                       .vmux   = 0,
-                       .gpio0  = 0x00017304,
-                       .gpio1  = 0x00008203,
-                       .gpio2  = 0x00017304,
-                       .gpio3  = 0x02000000,
-               }},
-               .dvb            = 1,
-       },
-       [CX88_BOARD_GENIATECH_DVBS] = {
-               .name          = "Geniatech DVB-S",
-               .tuner_type    = TUNER_ABSENT,
-               .radio_type    = UNSET,
-               .tuner_addr    = ADDR_UNSET,
-               .radio_addr    = ADDR_UNSET,
-               .input  = {{
-                       .type  = CX88_VMUX_DVB,
-                       .vmux  = 0,
-               },{
-                       .type  = CX88_VMUX_COMPOSITE1,
-                       .vmux  = 1,
-               }},
-               .dvb      = 1,
-       },
+
 };
 const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
 
@@ -1414,50 +1254,6 @@ struct cx88_subid cx88_subids[] = {
                .subdevice = 0xdb11,
                .card      = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS,
                /* Re-branded DViCO: UltraView DVB-T Plus */
-       },{
-               .subvendor = 0x17de,
-               .subdevice = 0x0840,
-               .card      = CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT,
-       },{
-               .subvendor = 0x18ac,
-               .subdevice = 0xdb40,
-               .card      = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID,
-       },{
-               .subvendor = 0x18ac,
-               .subdevice = 0xdb44,
-               .card      = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID,
-       },{
-               .subvendor = 0x7063,
-               .subdevice = 0x5500,
-               .card      = CX88_BOARD_PCHDTV_HD5500,
-       },{
-               .subvendor = 0x17de,
-               .subdevice = 0x0841,
-               .card      = CX88_BOARD_KWORLD_MCE200_DELUXE,
-       },{
-               .subvendor = 0x1822,
-               .subdevice = 0x0019,
-               .card      = CX88_BOARD_DNTV_LIVE_DVB_T_PRO,
-       },{
-               .subvendor = 0x1554,
-               .subdevice = 0x4813,
-               .card      = CX88_BOARD_PIXELVIEW_PLAYTV_P7000,
-       },{
-               .subvendor = 0x14f1,
-               .subdevice = 0x0842,
-               .card      = CX88_BOARD_NPGTECH_REALTV_TOP10FM,
-       },{
-               .subvendor = 0x107d,
-               .subdevice = 0x665e,
-               .card      = CX88_BOARD_WINFAST_DTV2000H,
-       },{
-               .subvendor = 0x18ac,
-               .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
-               .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,
-       },{
-               .subvendor = 0x14f1,
-               .subdevice = 0x0084,
-               .card      = CX88_BOARD_GENIATECH_DVBS,
        },
 };
 const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
@@ -1465,7 +1261,7 @@ const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
 /* ----------------------------------------------------------------------- */
 /* some leadtek specific stuff                                             */
 
-static void __devinit leadtek_eeprom(struct cx88_core *core, u8 *eeprom_data)
+static void leadtek_eeprom(struct cx88_core *core, u8 *eeprom_data)
 {
        /* This is just for the "Winfast 2000XP Expert" board ATM; I don't have data on
         * any others.
@@ -1576,40 +1372,6 @@ static void gdi_eeprom(struct cx88_core *core, u8 *eeprom_data)
        core->has_radio  = gdi_tuner[eeprom_data[0x0d]].fm;
 }
 
-/* ----------------------------------------------------------------------- */
-/* some DViCO specific stuff                                               */
-
-static void dvico_fusionhdtv_hybrid_init(struct cx88_core *core)
-{
-       struct i2c_msg msg = { .addr = 0x45, .flags = 0 };
-       int i, err;
-       static u8 init_bufs[13][5] = {
-               { 0x10, 0x00, 0x20, 0x01, 0x03 },
-               { 0x10, 0x10, 0x01, 0x00, 0x21 },
-               { 0x10, 0x10, 0x10, 0x00, 0xCA },
-               { 0x10, 0x10, 0x12, 0x00, 0x08 },
-               { 0x10, 0x10, 0x13, 0x00, 0x0A },
-               { 0x10, 0x10, 0x16, 0x01, 0xC0 },
-               { 0x10, 0x10, 0x22, 0x01, 0x3D },
-               { 0x10, 0x10, 0x73, 0x01, 0x2E },
-               { 0x10, 0x10, 0x72, 0x00, 0xC5 },
-               { 0x10, 0x10, 0x71, 0x01, 0x97 },
-               { 0x10, 0x10, 0x70, 0x00, 0x0F },
-               { 0x10, 0x10, 0xB0, 0x00, 0x01 },
-               { 0x03, 0x0C },
-       };
-
-       for (i = 0; i < 13; i++) {
-               msg.buf = init_bufs[i];
-               msg.len = (i != 12 ? 5 : 2);
-               err = i2c_transfer(&core->i2c_adap, &msg, 1);
-               if (err != 1) {
-                       printk("dvico_fusionhdtv_hybrid_init buf %d failed (err = %d)!\n", i, err);
-                       return;
-               }
-       }
-}
-
 /* ----------------------------------------------------------------------- */
 
 void cx88_card_list(struct cx88_core *core, struct pci_dev *pci)
@@ -1676,15 +1438,11 @@ void cx88_card_setup(struct cx88_core *core)
        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);
                cx_clear(MO_GP0_IO, 0x00000001);
                msleep(1);
                cx_set(MO_GP0_IO, 0x00000101);
-               if (0 == core->i2c_rc &&
-                   core->board == CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID)
-                       dvico_fusionhdtv_hybrid_init(core);
                break;
        case CX88_BOARD_KWORLD_DVB_T:
        case CX88_BOARD_DNTV_LIVE_DVB_T:
@@ -1702,7 +1460,7 @@ void cx88_card_setup(struct cx88_core *core)
                if (0 == core->i2c_rc) {
                        /* enable tuner */
                        int i;
-                       static const u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 };
+                       u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 };
                        core->i2c_client.addr = 0x0a;
 
                        for (i = 0; i < 5; i++)
@@ -1719,6 +1477,11 @@ void cx88_card_setup(struct cx88_core *core)
 /* ------------------------------------------------------------------ */
 
 EXPORT_SYMBOL(cx88_boards);
+EXPORT_SYMBOL(cx88_bcount);
+EXPORT_SYMBOL(cx88_subids);
+EXPORT_SYMBOL(cx88_idcount);
+EXPORT_SYMBOL(cx88_card_list);
+EXPORT_SYMBOL(cx88_card_setup);
 
 /*
  * Local variables: