V4L/DVB (12589): Add support for RoverMedia TV Link Pro FM
Eugene Yudin [Sat, 29 Aug 2009 12:32:11 +0000 (09:32 -0300)]
This patch add support for RoverMedia TV Link Pro FM (LR138 REV:I) card
based on saa7134.

Signed-off-by: Eugene Yudin <Eugene.Yudin@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

Documentation/video4linux/CARDLIST.saa7134
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-input.c
drivers/media/video/saa7134/saa7134.h

index cd0222d..0ac4d25 100644 (file)
 169 -> Compro VideoMate S350/S300               [185b:c900]
 170 -> AverMedia AverTV Studio 505              [1461:a115]
 171 -> Beholder BeholdTV X7                     [5ace:7595]
+172 -> RoverMedia TV Link Pro FM                [19d1:0138]
index a433a9b..1b29487 100644 (file)
@@ -266,6 +266,56 @@ struct saa7134_board saa7134_boards[] = {
                        .gpio = 0x10000,
                },
        },
+       [SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM] = {
+               /* RoverMedia TV Link Pro FM (LR138 REV:I) */
+               /* Eugene Yudin <Eugene.Yudin@gmail.com> */
+               .name           = "RoverMedia TV Link Pro FM",
+               .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* TCL MFPE05 2 */
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .tda9887_conf   = TDA9887_PRESENT,
+               .gpiomask       = 0xe000,
+               .inputs         = { {
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = TV,
+                       .gpio = 0x8000,
+                       .tv   = 1,
+               }, {
+                       .name = name_tv_mono,
+                       .vmux = 1,
+                       .amux = LINE2,
+                       .gpio = 0x0000,
+                       .tv   = 1,
+               }, {
+                       .name = name_comp1,
+                       .vmux = 0,
+                       .amux = LINE2,
+                       .gpio = 0x4000,
+               }, {
+                       .name = name_comp2,
+                       .vmux = 3,
+                       .amux = LINE2,
+                       .gpio = 0x4000,
+               }, {
+                       .name = name_svideo,
+                       .vmux = 8,
+                       .amux = LINE2,
+                       .gpio = 0x4000,
+               } },
+               .radio = {
+                       .name = name_radio,
+                       .amux = LINE2,
+                       .gpio = 0x2000,
+               },
+               .mute = {
+                       .name = name_mute,
+                       .amux = TV,
+                       .gpio = 0x8000,
+               },
+       },
        [SAA7134_BOARD_EMPRESS] = {
                /* "Gert Vervoort" <gert.vervoort@philips.com> */
                .name           = "EMPRESS",
@@ -6334,6 +6384,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subdevice    = 0x7595,
                .driver_data  = SAA7134_BOARD_BEHOLD_X7,
        }, {
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+               .subvendor    = 0x19d1, /* RoverMedia */
+               .subdevice    = 0x0138, /* LifeView FlyTV Prime30 OEM */
+               .driver_data  = SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM,
+       }, {
                /* --- boards without eeprom + subsystem ID --- */
                .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
@@ -6663,6 +6719,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_REAL_ANGEL_220:
        case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG:
        case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
+       case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM:
                dev->has_remote = SAA7134_REMOTE_GPIO;
                break;
        case SAA7134_BOARD_FLYDVBS_LR300:
index 355fd24..65fb7b1 100644 (file)
@@ -415,6 +415,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_FLYVIDEO3000:
        case SAA7134_BOARD_FLYTVPLATINUM_FM:
        case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
+       case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM:
                ir_codes     = ir_codes_flyvideo;
                mask_keycode = 0xEC00000;
                mask_keydown = 0x0040000;
index caefbf0..ac74903 100644 (file)
@@ -295,6 +295,7 @@ struct saa7134_format {
 #define SAA7134_BOARD_VIDEOMATE_S350        169
 #define SAA7134_BOARD_AVERMEDIA_STUDIO_505  170
 #define SAA7134_BOARD_BEHOLD_X7             171
+#define SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM 172
 
 #define SAA7134_MAXBOARDS 32
 #define SAA7134_INPUT_MAX 8