V4L/DVB: saa7134: Add support new Behold TV cards
authorDmitri Belimov <d.belimov@gmail.com>
Tue, 6 Apr 2010 04:00:05 +0000 (01:00 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 19 May 2010 15:58:41 +0000 (12:58 -0300)
[dougsland@redhat.com: Fixed cards numbers reject due changes in saa7134.h]

Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.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-dvb.c
drivers/media/video/saa7134/saa7134-input.c
drivers/media/video/saa7134/saa7134.h

index bb3d5fa..070f257 100644 (file)
 175 -> Leadtek Winfast DTV1000S                 [107d:6655]
 176 -> Beholder BeholdTV 505 RDS                [0000:5051]
 177 -> Hawell HW-404M7
+179 -> Beholder BeholdTV H7                    [5ace:7190]
+180 -> Beholder BeholdTV A7                    [5ace:7090]
index 435f821..72700d4 100644 (file)
@@ -5372,6 +5372,62 @@ struct saa7134_board saa7134_boards[] = {
                        .gpio = 0x01fc00,
                } },
        },
+       [SAA7134_BOARD_BEHOLD_H7] = {
+               /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
+               .name           = "Beholder BeholdTV H7",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_XC5000,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .mpeg           = SAA7134_MPEG_DVB,
+               .ts_type        = SAA7134_MPEG_TS_PARALLEL,
+               .inputs         = { {
+                       .name = name_tv,
+                       .vmux = 2,
+                       .amux = TV,
+                       .tv   = 1,
+               }, {
+                       .name = name_comp1,
+                       .vmux = 0,
+                       .amux = LINE1,
+               }, {
+                       .name = name_svideo,
+                       .vmux = 9,
+                       .amux = LINE1,
+               } },
+               .radio = {
+                       .name = name_radio,
+                       .amux = TV,
+               },
+       },
+       [SAA7134_BOARD_BEHOLD_A7] = {
+               /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
+               .name           = "Beholder BeholdTV A7",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_XC5000,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .inputs         = { {
+                       .name = name_tv,
+                       .vmux = 2,
+                       .amux = TV,
+                       .tv   = 1,
+               }, {
+                       .name = name_comp1,
+                       .vmux = 0,
+                       .amux = LINE1,
+               }, {
+                       .name = name_svideo,
+                       .vmux = 9,
+                       .amux = LINE1,
+               } },
+               .radio = {
+                       .name = name_radio,
+                       .amux = TV,
+               },
+       },
 
 };
 
@@ -6566,6 +6622,18 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subvendor    = PCI_ANY_ID,
                .subdevice    = PCI_ANY_ID,
                .driver_data  = SAA7134_BOARD_UNKNOWN,
+       }, {
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
+               .subdevice    = 0x7190,
+               .driver_data  = SAA7134_BOARD_BEHOLD_H7,
+       }, {
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
+               .subdevice    = 0x7090,
+               .driver_data  = SAA7134_BOARD_BEHOLD_A7,
        },{
                /* --- end of list --- */
        }
@@ -6619,6 +6687,8 @@ static int saa7134_xc5000_callback(struct saa7134_dev *dev,
 {
        switch (dev->board) {
        case SAA7134_BOARD_BEHOLD_X7:
+       case SAA7134_BOARD_BEHOLD_H7:
+       case SAA7134_BOARD_BEHOLD_A7:
                if (command == XC5000_TUNER_RESET) {
                /* Down and UP pheripherial RESET pin for reset all chips */
                        saa_writeb(SAA7134_SPECIAL_MODE, 0x00);
@@ -6990,6 +7060,8 @@ int saa7134_board_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_BEHOLD_M6_EXTRA:
        case SAA7134_BOARD_BEHOLD_H6:
        case SAA7134_BOARD_BEHOLD_X7:
+       case SAA7134_BOARD_BEHOLD_H7:
+       case SAA7134_BOARD_BEHOLD_A7:
                dev->has_remote = SAA7134_REMOTE_I2C;
                break;
        case SAA7134_BOARD_AVERMEDIA_A169_B:
index 4ab4a98..31e82be 100644 (file)
@@ -1532,6 +1532,15 @@ static int dvb_init(struct saa7134_dev *dev)
                                   &dev->i2c_adap, &behold_x7_tunerconfig);
                }
                break;
+       case SAA7134_BOARD_BEHOLD_H7:
+               fe0->dvb.frontend = dvb_attach(zl10353_attach,
+                                               &behold_x7_config,
+                                               &dev->i2c_adap);
+               if (fe0->dvb.frontend) {
+                       dvb_attach(xc5000_attach, fe0->dvb.frontend,
+                                  &dev->i2c_adap, &behold_x7_tunerconfig);
+               }
+               break;
        case SAA7134_BOARD_AVERMEDIA_A700_PRO:
        case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
                /* Zarlink ZL10313 */
index e4681ed..e5565e2 100644 (file)
@@ -982,6 +982,8 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev)
        case SAA7134_BOARD_BEHOLD_M6_EXTRA:
        case SAA7134_BOARD_BEHOLD_H6:
        case SAA7134_BOARD_BEHOLD_X7:
+       case SAA7134_BOARD_BEHOLD_H7:
+       case SAA7134_BOARD_BEHOLD_A7:
                dev->init_data.name = "BeholdTV";
                dev->init_data.get_key = get_key_beholdm6xx;
                dev->init_data.ir_codes = RC_MAP_BEHOLD;
index cad8aee..3962534 100644 (file)
@@ -301,6 +301,8 @@ struct saa7134_format {
 #define SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S 175
 #define SAA7134_BOARD_BEHOLD_505RDS_MK3     176
 #define SAA7134_BOARD_HAWELL_HW_404M7          177
+#define SAA7134_BOARD_BEHOLD_H7             178
+#define SAA7134_BOARD_BEHOLD_A7             179
 
 #define SAA7134_MAXBOARDS 32
 #define SAA7134_INPUT_MAX 8