V4L/DVB (3380): Semaphore to mutex conversion on drivers/media
[safe/jmp/linux-2.6] / drivers / media / video / cx88 / cx88-cards.c
index 85798e1..ad2f565 100644 (file)
@@ -982,6 +982,73 @@ struct cx88_board cx88_boards[] = {
                /* fixme: Add radio support */
                .dvb            = 1,
        },
+       [CX88_BOARD_DNTV_LIVE_DVB_T_PRO] = {
+               .name           = "digitalnow DNTV Live! DVB-T Pro",
+               .tuner_type     = TUNER_PHILIPS_FMD1216ME_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  = 0xf80808,
+               },{
+                       .type   = CX88_VMUX_COMPOSITE1,
+                       .vmux   = 1,
+                       .gpio0  = 0xf80808,
+               },{
+                       .type   = CX88_VMUX_SVIDEO,
+                       .vmux   = 2,
+                       .gpio0  = 0xf80808,
+               }},
+               .radio = {
+                        .type  = CX88_RADIO,
+                        .gpio0 = 0xf80808,
+               },
+               .dvb            = 1,
+       },
+       [CX88_BOARD_KWORLD_DVB_T_CX22702] = {
+               /* Kworld V-stream Xpert DVB-T with Thomson tuner */
+               /* DTT 7579 Conexant CX22702-19 Conexant CX2388x  */
+               /* Manenti Marco <marco_manenti@colman.it> */
+               .name           = "KWorld/VStream XPert DVB-T with cx22702",
+               .tuner_type     = TUNER_ABSENT,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .input          = {{
+                       .type   = CX88_VMUX_COMPOSITE1,
+                       .vmux   = 1,
+                       .gpio0  = 0x0700,
+                       .gpio2  = 0x0101,
+               },{
+                       .type   = CX88_VMUX_SVIDEO,
+                       .vmux   = 2,
+                       .gpio0  = 0x0700,
+                       .gpio2  = 0x0101,
+               }},
+               .dvb            = 1,
+       },
+       [CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL] = {
+               .name           = "DViCO FusionHDTV DVB-T Dual Digital",
+               .tuner_type     = TUNER_ABSENT, /* No analog tuner */
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .input          = {{
+                       .type   = CX88_VMUX_COMPOSITE1,
+                       .vmux   = 1,
+                       .gpio0  = 0x000027df,
+                },{
+                       .type   = CX88_VMUX_SVIDEO,
+                       .vmux   = 2,
+                       .gpio0  = 0x000027df,
+               }},
+               .dvb            = 1,
+       },
+
 };
 const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
 
@@ -1165,6 +1232,23 @@ struct cx88_subid cx88_subids[] = {
                .subvendor = 0x0070,
                .subdevice = 0x9001,
                .card      = CX88_BOARD_HAUPPAUGE_DVB_T1,
+       },{
+               .subvendor = 0x1822,
+               .subdevice = 0x0025,
+               .card      = CX88_BOARD_DNTV_LIVE_DVB_T_PRO,
+       },{
+               .subvendor = 0x17de,
+               .subdevice = 0x08a1,
+               .card      = CX88_BOARD_KWORLD_DVB_T_CX22702,
+       },{
+               .subvendor = 0x18ac,
+               .subdevice = 0xdb50,
+               .card      = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL,
+       },{
+               .subvendor = 0x18ac,
+               .subdevice = 0xdb11,
+               .card      = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS,
+               /* Re-branded DViCO: UltraView DVB-T Plus */
        },
 };
 const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
@@ -1347,6 +1431,7 @@ void cx88_card_setup(struct cx88_core *core)
                break;
        case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1:
        case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS:
+       case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL:
                /* GPIO0:0 is hooked to mt352 reset pin */
                cx_set(MO_GP0_IO, 0x00000101);
                cx_clear(MO_GP0_IO, 0x00000001);
@@ -1362,6 +1447,9 @@ void cx88_card_setup(struct cx88_core *core)
                cx_clear(MO_GP0_IO, 0x00000007);
                cx_set(MO_GP2_IO, 0x00000101);
                break;
+       case CX88_BOARD_DNTV_LIVE_DVB_T_PRO:
+               cx_write(MO_GP0_IO, 0x00080808);
+               break;
        case CX88_BOARD_ATI_HDTVWONDER:
                if (0 == core->i2c_rc) {
                        /* enable tuner */