diff options
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 44 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 39 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 |
3 files changed, 84 insertions, 0 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 98364d171def..3c2f09fb0446 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -4409,6 +4409,36 @@ struct saa7134_board saa7134_boards[] = { | |||
4409 | /* no DVB support for now */ | 4409 | /* no DVB support for now */ |
4410 | /* .mpeg = SAA7134_MPEG_DVB, */ | 4410 | /* .mpeg = SAA7134_MPEG_DVB, */ |
4411 | }, | 4411 | }, |
4412 | [SAA7134_BOARD_ASUSTeK_TIGER_3IN1] = { | ||
4413 | .name = "Asus Tiger 3in1", | ||
4414 | .audio_clock = 0x00187de7, | ||
4415 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
4416 | .radio_type = UNSET, | ||
4417 | .tuner_addr = ADDR_UNSET, | ||
4418 | .radio_addr = ADDR_UNSET, | ||
4419 | .tuner_config = 2, | ||
4420 | .gpiomask = 1 << 21, | ||
4421 | .mpeg = SAA7134_MPEG_DVB, | ||
4422 | .inputs = {{ | ||
4423 | .name = name_tv, | ||
4424 | .vmux = 1, | ||
4425 | .amux = TV, | ||
4426 | .tv = 1, | ||
4427 | }, { | ||
4428 | .name = name_comp, | ||
4429 | .vmux = 0, | ||
4430 | .amux = LINE2, | ||
4431 | }, { | ||
4432 | .name = name_svideo, | ||
4433 | .vmux = 8, | ||
4434 | .amux = LINE2, | ||
4435 | } }, | ||
4436 | .radio = { | ||
4437 | .name = name_radio, | ||
4438 | .amux = TV, | ||
4439 | .gpio = 0x0200000, | ||
4440 | }, | ||
4441 | }, | ||
4412 | }; | 4442 | }; |
4413 | 4443 | ||
4414 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 4444 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -5432,6 +5462,12 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
5432 | .subdevice = 0xf636, | 5462 | .subdevice = 0xf636, |
5433 | .driver_data = SAA7134_BOARD_AVERMEDIA_M103, | 5463 | .driver_data = SAA7134_BOARD_AVERMEDIA_M103, |
5434 | }, { | 5464 | }, { |
5465 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
5466 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
5467 | .subvendor = 0x1043, | ||
5468 | .subdevice = 0x4878, /* REV:1.02G */ | ||
5469 | .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, | ||
5470 | }, { | ||
5435 | /* --- boards without eeprom + subsystem ID --- */ | 5471 | /* --- boards without eeprom + subsystem ID --- */ |
5436 | .vendor = PCI_VENDOR_ID_PHILIPS, | 5472 | .vendor = PCI_VENDOR_ID_PHILIPS, |
5437 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 5473 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -6002,6 +6038,14 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
6002 | i2c_transfer(&dev->i2c_adap, &msg, 1); | 6038 | i2c_transfer(&dev->i2c_adap, &msg, 1); |
6003 | break; | 6039 | break; |
6004 | } | 6040 | } |
6041 | case SAA7134_BOARD_ASUSTeK_TIGER_3IN1: | ||
6042 | { | ||
6043 | u8 data[] = { 0x3c, 0x33, 0x60}; | ||
6044 | struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data, | ||
6045 | .len = sizeof(data)}; | ||
6046 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
6047 | break; | ||
6048 | } | ||
6005 | case SAA7134_BOARD_FLYDVB_TRIO: | 6049 | case SAA7134_BOARD_FLYDVB_TRIO: |
6006 | { | 6050 | { |
6007 | u8 data[] = { 0x3c, 0x33, 0x62}; | 6051 | u8 data[] = { 0x3c, 0x33, 0x62}; |
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; |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 5e7fc731fab1..cbfdac27b69e 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -269,6 +269,7 @@ struct saa7134_format { | |||
269 | #define SAA7134_BOARD_BEHOLD_M6_EXTRA 144 | 269 | #define SAA7134_BOARD_BEHOLD_M6_EXTRA 144 |
270 | #define SAA7134_BOARD_AVERMEDIA_M103 145 | 270 | #define SAA7134_BOARD_AVERMEDIA_M103 145 |
271 | #define SAA7134_BOARD_ASUSTeK_P7131_ANALOG 146 | 271 | #define SAA7134_BOARD_ASUSTeK_P7131_ANALOG 146 |
272 | #define SAA7134_BOARD_ASUSTeK_TIGER_3IN1 147 | ||
272 | 273 | ||
273 | #define SAA7134_MAXBOARDS 8 | 274 | #define SAA7134_MAXBOARDS 8 |
274 | #define SAA7134_INPUT_MAX 8 | 275 | #define SAA7134_INPUT_MAX 8 |