diff options
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-dvb.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index be48b9b66a67..7fa6ce76642b 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -799,6 +799,20 @@ static struct tda1004x_config twinhan_dtv_dvb_3056_config = { | |||
799 | .request_firmware = philips_tda1004x_request_firmware | 799 | .request_firmware = philips_tda1004x_request_firmware |
800 | }; | 800 | }; |
801 | 801 | ||
802 | static struct tda1004x_config asus_tiger_3in1_config = { | ||
803 | .demod_address = 0x0b, | ||
804 | .invert = 1, | ||
805 | .invert_oclk = 0, | ||
806 | .xtal_freq = TDA10046_XTAL_16M, | ||
807 | .agc_config = TDA10046_AGC_TDA827X, | ||
808 | .gpio_config = TDA10046_GP11_I, | ||
809 | .if_freq = TDA10046_FREQ_045, | ||
810 | .i2c_gate = 0x4b, | ||
811 | .tuner_address = 0x61, | ||
812 | .antenna_switch = 1, | ||
813 | .request_firmware = philips_tda1004x_request_firmware | ||
814 | }; | ||
815 | |||
802 | /* ------------------------------------------------------------------ | 816 | /* ------------------------------------------------------------------ |
803 | * special case: this card uses saa713x GPIO22 for the mode switch | 817 | * special case: this card uses saa713x GPIO22 for the mode switch |
804 | */ | 818 | */ |
@@ -1300,6 +1314,31 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1300 | &dev->i2c_adap); | 1314 | &dev->i2c_adap); |
1301 | attach_xc3028 = 1; | 1315 | attach_xc3028 = 1; |
1302 | break; | 1316 | break; |
1317 | case SAA7134_BOARD_ASUSTeK_TIGER_3IN1: | ||
1318 | if (!use_frontend) { /* terrestrial */ | ||
1319 | if (configure_tda827x_fe(dev, &asus_tiger_3in1_config, | ||
1320 | &tda827x_cfg_2) < 0) | ||
1321 | goto dettach_frontend; | ||
1322 | } else { /* satellite */ | ||
1323 | dev->dvb.frontend = dvb_attach(tda10086_attach, | ||
1324 | &flydvbs, &dev->i2c_adap); | ||
1325 | if (dev->dvb.frontend) { | ||
1326 | if (dvb_attach(tda826x_attach, | ||
1327 | dev->dvb.frontend, 0x60, | ||
1328 | &dev->i2c_adap, 0) == NULL) { | ||
1329 | wprintk("%s: Asus Tiger 3in1, no " | ||
1330 | "tda826x found!\n", __func__); | ||
1331 | goto dettach_frontend; | ||
1332 | } | ||
1333 | if (dvb_attach(lnbp21_attach, dev->dvb.frontend, | ||
1334 | &dev->i2c_adap, 0, 0) == NULL) { | ||
1335 | wprintk("%s: Asus Tiger 3in1, no lnbp21" | ||
1336 | " found!\n", __func__); | ||
1337 | goto dettach_frontend; | ||
1338 | } | ||
1339 | } | ||
1340 | } | ||
1341 | break; | ||
1303 | default: | 1342 | default: |
1304 | wprintk("Huh? unknown DVB card?\n"); | 1343 | wprintk("Huh? unknown DVB card?\n"); |
1305 | break; | 1344 | break; |