V4L/DVB (4769): Added support for a ASUSTEK P7131 Dual DVB-T variant
authorHartmut Hackmann <hartmut.hackmann@t-online.de>
Thu, 12 Oct 2006 23:38:51 +0000 (20:38 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 10 Dec 2006 10:51:03 +0000 (08:51 -0200)
This card has no firmware eeprom. The old version still should not
need a firmware file due to an undocumented feature of the TDA10046.
The patch also includes Hermann Pitton's proposal for improved
antenna switch handling

Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Documentation/video4linux/CARDLIST.saa7134
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-dvb.c

index 8be8f9738cde560789985598ec191e6c9170574a..a9bffd9a3d80454a9afa70cce5d8b94c928fd3a1 100644 (file)
@@ -76,7 +76,7 @@
  75 -> AVerMedia AVerTVHD MCE A180              [1461:1044]
  76 -> SKNet MonsterTV Mobile                   [1131:4ee9]
  77 -> Pinnacle PCTV 40i/50i/110i (saa7133)     [11bd:002e]
- 78 -> ASUSTeK P7131 Dual                       [1043:4862]
+ 78 -> ASUSTeK P7131 Dual                       [1043:4862,1043:4876]
  79 -> Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)
  80 -> ASUS Digimatrix TV                       [1043:0210]
  81 -> Philips Tiger reference design           [1131:2018]
index 2a00cb40f1121684d34c85d85501fce3c400a288..8109c8ef09ffff217644b77d7c0df19ff7ac6554 100644 (file)
@@ -2462,14 +2462,17 @@ struct saa7134_board saa7134_boards[] = {
                        .vmux = 1,
                        .amux = TV,
                        .tv   = 1,
+                       .gpio = 0x0000000,
                },{
                        .name = name_comp1,
                        .vmux = 3,
                        .amux = LINE2,
+                       .gpio = 0x0200000,
                },{
                        .name = name_svideo,
                        .vmux = 8,
                        .amux = LINE2,
+                       .gpio = 0x0200000,
                }},
                .radio = {
                        .name = name_radio,
@@ -3718,6 +3721,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
                .subdevice    = 0x9715,
                .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x1043,
+               .subdevice    = 0x4876,
+               .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
        },{
                /* --- boards without eeprom + subsystem ID --- */
                .vendor       = PCI_VENDOR_ID_PHILIPS,
index 69092f092bb83a8e86074e5f4040104902e58dd2..706450c27a57ebcd8b9f88b815ff6f6c9400a64a 100644 (file)
@@ -894,6 +894,16 @@ static struct tda1004x_config pinnacle_pctv_310i_config = {
 
 /* ------------------------------------------------------------------ */
 
+static struct tda1004x_config asus_p7131_dual_config = {
+       .demod_address = 0x08,
+       .invert        = 1,
+       .invert_oclk   = 0,
+       .xtal_freq     = TDA10046_XTAL_16M,
+       .agc_config    = TDA10046_AGC_TDA827X,
+       .if_freq       = TDA10046_FREQ_045,
+       .request_firmware = philips_tda1004x_request_firmware,
+};
+
 static int asus_p7131_dual_tuner_init(struct dvb_frontend *fe)
 {
        struct saa7134_dev *dev = fe->dvb->priv;
@@ -1207,7 +1217,7 @@ static int dvb_init(struct saa7134_dev *dev)
                break;
        case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
                dev->dvb.frontend = dvb_attach(tda10046_attach,
-                                              &philips_tiger_config,
+                                              &asus_p7131_dual_config,
                                               &dev->i2c_adap);
                if (dev->dvb.frontend) {
                        dev->dvb.frontend->ops.i2c_gate_ctrl = tda8290_i2c_gate_ctrl;