diff options
author | Hermann Pitton <hermann-pitton@arcor.de> | 2008-01-20 17:27:51 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-02-18 09:14:55 -0500 |
commit | 4ba243734a0363649c514353334ed3d6ca39a5fb (patch) | |
tree | 2e528162af8fb770dbdc7e2b04a1323282e1d64d /drivers/media | |
parent | c0e0aff9779303c7e3ef7e6db4001dbc2bfdcbdd (diff) |
V4L/DVB (7082): support for Twinhan Hybrid DTV-DVB 3056 PCI
S-Video is unconfirmed, but likely correct.
The remote is not yet investigated.
Thanks go to Sioux for providing code and asking to fix the auto
detection.
Signed-off-by: sioux <sioux_it@libero.it>
Signed-off-by: Hermann Pitton <hermann-pitton@arcor.de>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 41 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 18 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 |
3 files changed, 58 insertions, 2 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 7d7f383b404f..176543f723ca 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -3912,6 +3912,36 @@ struct saa7134_board saa7134_boards[] = { | |||
3912 | }, | 3912 | }, |
3913 | .mpeg = SAA7134_MPEG_EMPRESS, | 3913 | .mpeg = SAA7134_MPEG_EMPRESS, |
3914 | }, | 3914 | }, |
3915 | [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = { | ||
3916 | .name = "Twinhan Hybrid DTV-DVB 3056 PCI", | ||
3917 | .audio_clock = 0x00187de7, | ||
3918 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
3919 | .radio_type = UNSET, | ||
3920 | .tuner_addr = ADDR_UNSET, | ||
3921 | .radio_addr = ADDR_UNSET, | ||
3922 | .tuner_config = 2, | ||
3923 | .mpeg = SAA7134_MPEG_DVB, | ||
3924 | .gpiomask = 0x0200000, | ||
3925 | .inputs = {{ | ||
3926 | .name = name_tv, | ||
3927 | .vmux = 1, | ||
3928 | .amux = TV, | ||
3929 | .tv = 1, | ||
3930 | }, { | ||
3931 | .name = name_comp1, | ||
3932 | .vmux = 3, | ||
3933 | .amux = LINE1, | ||
3934 | }, { | ||
3935 | .name = name_svideo, | ||
3936 | .vmux = 8, /* untested */ | ||
3937 | .amux = LINE1, | ||
3938 | } }, | ||
3939 | .radio = { | ||
3940 | .name = name_radio, | ||
3941 | .amux = TV, | ||
3942 | .gpio = 0x0200000, | ||
3943 | }, | ||
3944 | }, | ||
3915 | }; | 3945 | }; |
3916 | 3946 | ||
3917 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 3947 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -4843,7 +4873,13 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
4843 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | 4873 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, |
4844 | .subvendor = 0x4e42, | 4874 | .subvendor = 0x4e42, |
4845 | .subdevice = 0x3502, | 4875 | .subdevice = 0x3502, |
4846 | .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS | 4876 | .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS, |
4877 | }, { | ||
4878 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
4879 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
4880 | .subvendor = 0x1822, /*Twinhan Technology Co. Ltd*/ | ||
4881 | .subdevice = 0x0022, | ||
4882 | .driver_data = SAA7134_BOARD_TWINHAN_DTV_DVB_3056, | ||
4847 | },{ | 4883 | },{ |
4848 | /* --- boards without eeprom + subsystem ID --- */ | 4884 | /* --- boards without eeprom + subsystem ID --- */ |
4849 | .vendor = PCI_VENDOR_ID_PHILIPS, | 4885 | .vendor = PCI_VENDOR_ID_PHILIPS, |
@@ -5232,7 +5268,8 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
5232 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: | 5268 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: |
5233 | case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: | 5269 | case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: |
5234 | case SAA7134_BOARD_MEDION_MD8800_QUADRO: | 5270 | case SAA7134_BOARD_MEDION_MD8800_QUADRO: |
5235 | case SAA7134_BOARD_AVERMEDIA_SUPER_007: | 5271 | case SAA7134_BOARD_AVERMEDIA_SUPER_007: |
5272 | case SAA7134_BOARD_TWINHAN_DTV_DVB_3056: | ||
5236 | /* this is a hybrid board, initialize to analog mode | 5273 | /* this is a hybrid board, initialize to analog mode |
5237 | * and configure firmware eeprom address | 5274 | * and configure firmware eeprom address |
5238 | */ | 5275 | */ |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index a9ca5730826f..90f495a67804 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -779,6 +779,21 @@ static struct tda1004x_config avermedia_super_007_config = { | |||
779 | .request_firmware = philips_tda1004x_request_firmware | 779 | .request_firmware = philips_tda1004x_request_firmware |
780 | }; | 780 | }; |
781 | 781 | ||
782 | static struct tda1004x_config twinhan_dtv_dvb_3056_config = { | ||
783 | .demod_address = 0x08, | ||
784 | .invert = 1, | ||
785 | .invert_oclk = 0, | ||
786 | .xtal_freq = TDA10046_XTAL_16M, | ||
787 | .agc_config = TDA10046_AGC_TDA827X, | ||
788 | .gpio_config = TDA10046_GP01_I, | ||
789 | .if_freq = TDA10046_FREQ_045, | ||
790 | .i2c_gate = 0x42, | ||
791 | .tuner_address = 0x61, | ||
792 | .tuner_config = 2, | ||
793 | .antenna_switch = 1, | ||
794 | .request_firmware = philips_tda1004x_request_firmware | ||
795 | }; | ||
796 | |||
782 | /* ------------------------------------------------------------------ | 797 | /* ------------------------------------------------------------------ |
783 | * special case: this card uses saa713x GPIO22 for the mode switch | 798 | * special case: this card uses saa713x GPIO22 for the mode switch |
784 | */ | 799 | */ |
@@ -1044,6 +1059,9 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1044 | case SAA7134_BOARD_AVERMEDIA_SUPER_007: | 1059 | case SAA7134_BOARD_AVERMEDIA_SUPER_007: |
1045 | configure_tda827x_fe(dev, &avermedia_super_007_config); | 1060 | configure_tda827x_fe(dev, &avermedia_super_007_config); |
1046 | break; | 1061 | break; |
1062 | case SAA7134_BOARD_TWINHAN_DTV_DVB_3056: | ||
1063 | configure_tda827x_fe(dev, &twinhan_dtv_dvb_3056_config); | ||
1064 | break; | ||
1047 | default: | 1065 | default: |
1048 | wprintk("Huh? unknown DVB card?\n"); | 1066 | wprintk("Huh? unknown DVB card?\n"); |
1049 | break; | 1067 | break; |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index b88ca995fafb..27fb44332215 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -252,6 +252,7 @@ struct saa7134_format { | |||
252 | #define SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM 128 | 252 | #define SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM 128 |
253 | #define SAA7134_BOARD_BEHOLD_607_9FM 129 | 253 | #define SAA7134_BOARD_BEHOLD_607_9FM 129 |
254 | #define SAA7134_BOARD_BEHOLD_M6 130 | 254 | #define SAA7134_BOARD_BEHOLD_M6 130 |
255 | #define SAA7134_BOARD_TWINHAN_DTV_DVB_3056 131 | ||
255 | 256 | ||
256 | #define SAA7134_MAXBOARDS 8 | 257 | #define SAA7134_MAXBOARDS 8 |
257 | #define SAA7134_INPUT_MAX 8 | 258 | #define SAA7134_INPUT_MAX 8 |