aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/video4linux/CARDLIST.saa71341
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c38
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c36
-rw-r--r--drivers/media/video/saa7134/saa7134.h1
4 files changed, 75 insertions, 1 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index ee1618deadf2..c10cfd26d529 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -86,3 +86,4 @@
86 85 -> AverTV DVB-T 777 [1461:2c05] 86 85 -> AverTV DVB-T 777 [1461:2c05]
87 86 -> LifeView FlyDVB-T [5168:0301] 87 86 -> LifeView FlyDVB-T [5168:0301]
88 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421] 88 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421]
89 88 -> Tevion DVB-T 220RF [17de:7201]
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index d65b9dd90342..3f418620bacf 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -2674,6 +2674,33 @@ struct saa7134_board saa7134_boards[] = {
2674 .gpio = 0x00200000, 2674 .gpio = 0x00200000,
2675 }}, 2675 }},
2676 }, 2676 },
2677 [SAA7134_BOARD_TEVION_DVBT_220RF] = {
2678 .name = "Tevion DVB-T 220RF",
2679 .audio_clock = 0x00187de7,
2680 .tuner_type = TUNER_PHILIPS_TDA8290,
2681 .radio_type = UNSET,
2682 .tuner_addr = ADDR_UNSET,
2683 .radio_addr = ADDR_UNSET,
2684 .mpeg = SAA7134_MPEG_DVB,
2685 .inputs = {{
2686 .name = name_tv,
2687 .vmux = 1,
2688 .amux = TV,
2689 .tv = 1,
2690 },{
2691 .name = name_comp1,
2692 .vmux = 3,
2693 .amux = LINE1,
2694 },{
2695 .name = name_svideo,
2696 .vmux = 0,
2697 .amux = LINE1,
2698 }},
2699 .radio = {
2700 .name = name_radio,
2701 .amux = LINE1,
2702 },
2703 },
2677}; 2704};
2678 2705
2679const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); 2706const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -3163,6 +3190,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
3163 .subdevice = 0x1421, 3190 .subdevice = 0x1421,
3164 .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331, 3191 .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
3165 },{ 3192 },{
3193 .vendor = PCI_VENDOR_ID_PHILIPS,
3194 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
3195 .subvendor = 0x17de,
3196 .subdevice = 0x7201,
3197 .driver_data = SAA7134_BOARD_TEVION_DVBT_220RF,
3198 },{
3166 /* --- boards without eeprom + subsystem ID --- */ 3199 /* --- boards without eeprom + subsystem ID --- */
3167 .vendor = PCI_VENDOR_ID_PHILIPS, 3200 .vendor = PCI_VENDOR_ID_PHILIPS,
3168 .device = PCI_DEVICE_ID_PHILIPS_SAA7134, 3201 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
@@ -3431,8 +3464,11 @@ int saa7134_board_init2(struct saa7134_dev *dev)
3431 } 3464 }
3432 break; 3465 break;
3433 case SAA7134_BOARD_PHILIPS_TIGER: 3466 case SAA7134_BOARD_PHILIPS_TIGER:
3467 case SAA7134_BOARD_TEVION_DVBT_220RF:
3434 case SAA7134_BOARD_ASUSTeK_P7131_DUAL: 3468 case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
3435 /* this is a hybrid board, initialize to analog mode */ 3469 /* this is a hybrid board, initialize to analog mode
3470 * and configure firmware eeprom address
3471 */
3436 { 3472 {
3437 u8 data[] = { 0x3c, 0x33, 0x68}; 3473 u8 data[] = { 0x3c, 0x33, 0x68};
3438 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; 3474 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index a0c8fa393501..56ca3fad55c4 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -885,6 +885,38 @@ static struct tda1004x_config ads_tech_duo_config = {
885 .request_firmware = NULL, 885 .request_firmware = NULL,
886}; 886};
887 887
888/* ------------------------------------------------------------------ */
889
890static int tevion_dvb220rf_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
891{
892 int ret;
893 ret = philips_tda827xa_pll_set(0x60, fe, params);
894 return ret;
895}
896
897static int tevion_dvb220rf_pll_init(struct dvb_frontend *fe)
898{
899 return 0;
900}
901
902static void tevion_dvb220rf_pll_sleep(struct dvb_frontend *fe)
903{
904 philips_tda827xa_pll_sleep( 0x61, fe);
905}
906
907static struct tda1004x_config tevion_dvbt220rf_config = {
908 .demod_address = 0x08,
909 .invert = 1,
910 .invert_oclk = 0,
911 .xtal_freq = TDA10046_XTAL_16M,
912 .agc_config = TDA10046_AGC_TDA827X,
913 .if_freq = TDA10046_FREQ_045,
914 .pll_init = tevion_dvb220rf_pll_init,
915 .pll_set = tevion_dvb220rf_pll_set,
916 .pll_sleep = tevion_dvb220rf_pll_sleep,
917 .request_firmware = NULL,
918};
919
888#endif 920#endif
889 921
890/* ------------------------------------------------------------------ */ 922/* ------------------------------------------------------------------ */
@@ -971,6 +1003,10 @@ static int dvb_init(struct saa7134_dev *dev)
971 dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config, 1003 dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config,
972 &dev->i2c_adap); 1004 &dev->i2c_adap);
973 break; 1005 break;
1006 case SAA7134_BOARD_TEVION_DVBT_220RF:
1007 dev->dvb.frontend = tda10046_attach(&tevion_dvbt220rf_config,
1008 &dev->i2c_adap);
1009 break;
974#endif 1010#endif
975#ifdef HAVE_NXT200X 1011#ifdef HAVE_NXT200X
976 case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: 1012 case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180:
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h
index 4b49ee03fc21..ff39a63c7372 100644
--- a/drivers/media/video/saa7134/saa7134.h
+++ b/drivers/media/video/saa7134/saa7134.h
@@ -214,6 +214,7 @@ struct saa7134_format {
214#define SAA7134_BOARD_AVERMEDIA_777 85 214#define SAA7134_BOARD_AVERMEDIA_777 85
215#define SAA7134_BOARD_FLYDVBT_LR301 86 215#define SAA7134_BOARD_FLYDVBT_LR301 86
216#define SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331 87 216#define SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331 87
217#define SAA7134_BOARD_TEVION_DVBT_220RF 88
217 218
218#define SAA7134_MAXBOARDS 8 219#define SAA7134_MAXBOARDS 8
219#define SAA7134_INPUT_MAX 8 220#define SAA7134_INPUT_MAX 8