diff options
author | Rickard Osser <ricky@osser.se> | 2006-03-11 15:14:12 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 11:53:11 -0500 |
commit | 68593af311aadb541b3b70acea175dea8e9cf7ca (patch) | |
tree | ec38cccc0099c961e539005dc42adc28447c3231 | |
parent | f3629be8388a679590eb919919ee63e2715ec25e (diff) |
V4L/DVB (3446): Saa7134: add support for AVerMedia A169 Dual Analog tuner card
- Added support for AVerMedia A169 Dual Analog tuner card
(dual saa7134 decoders - only 1 working right now)
- Added autodetection for both parts of the card.
It shows up like 2 cards, B1 and B
- Enabled tuner B1, SVIDEO on B1 and composite1 through SVIDEO,
FIXME: B is more or less dead at this point and I suspect the
FM-radio is on the B part of the board
Signed-off-by: Rickard Osser <ricky@osser.se>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 2 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 59 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 2 |
3 files changed, 63 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index 874ffc4b5cca..421a2427f50a 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -89,3 +89,5 @@ | |||
89 | 88 -> Tevion/KWorld DVB-T 220RF [17de:7201] | 89 | 88 -> Tevion/KWorld DVB-T 220RF [17de:7201] |
90 | 89 -> ELSA EX-VISION 700TV [1048:226c] | 90 | 89 -> ELSA EX-VISION 700TV [1048:226c] |
91 | 90 -> Kworld ATSC110 [17de:7350] | 91 | 90 -> Kworld ATSC110 [17de:7350] |
92 | 91 -> AVerMedia A169 B [1461:7360] | ||
93 | 92 -> AVerMedia A169 B1 [1461:6360] | ||
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index f9265419ccb9..f9a29c415c73 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -2756,6 +2756,47 @@ struct saa7134_board saa7134_boards[] = { | |||
2756 | .amux = LINE2, | 2756 | .amux = LINE2, |
2757 | }}, | 2757 | }}, |
2758 | }, | 2758 | }, |
2759 | [SAA7134_BOARD_AVERMEDIA_A169_B] = { | ||
2760 | /* AVerMedia A169 */ | ||
2761 | /* Rickard Osser <ricky@osser.se> */ | ||
2762 | /* This card has two saa7134 chips on it, | ||
2763 | but only one of them is currently working. */ | ||
2764 | .name = "AVerMedia A169 B", | ||
2765 | .audio_clock = 0x02187de7, | ||
2766 | .tuner_type = TUNER_LG_TALN, | ||
2767 | .radio_type = UNSET, | ||
2768 | .tuner_addr = ADDR_UNSET, | ||
2769 | .radio_addr = ADDR_UNSET, | ||
2770 | .tda9887_conf = TDA9887_PRESENT, | ||
2771 | .gpiomask = 0x0a60000, | ||
2772 | }, | ||
2773 | [SAA7134_BOARD_AVERMEDIA_A169_B1] = { | ||
2774 | /* AVerMedia A169 */ | ||
2775 | /* Rickard Osser <ricky@osser.se> */ | ||
2776 | .name = "AVerMedia A169 B1", | ||
2777 | .audio_clock = 0x02187de7, | ||
2778 | .tuner_type = TUNER_LG_TALN, | ||
2779 | .radio_type = UNSET, | ||
2780 | .tuner_addr = ADDR_UNSET, | ||
2781 | .radio_addr = ADDR_UNSET, | ||
2782 | .tda9887_conf = TDA9887_PRESENT, | ||
2783 | .gpiomask = 0xca60000, | ||
2784 | .inputs = {{ | ||
2785 | .name = name_tv, | ||
2786 | .vmux = 4, | ||
2787 | .amux = TV, | ||
2788 | .tv = 1, | ||
2789 | .gpio = 0x04a61000, | ||
2790 | },{ | ||
2791 | .name = name_comp2, /* Composite SVIDEO (B/W if signal is carried with SVIDEO) */ | ||
2792 | .vmux = 1, | ||
2793 | .amux = LINE2, | ||
2794 | },{ | ||
2795 | .name = name_svideo, | ||
2796 | .vmux = 9, /* 9 is correct as S-VIDEO1 according to a169.inf! */ | ||
2797 | .amux = LINE1, | ||
2798 | }}, | ||
2799 | }, | ||
2759 | }; | 2800 | }; |
2760 | 2801 | ||
2761 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2802 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -3263,6 +3304,18 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
3263 | .subdevice = 0x7350, | 3304 | .subdevice = 0x7350, |
3264 | .driver_data = SAA7134_BOARD_KWORLD_ATSC110, | 3305 | .driver_data = SAA7134_BOARD_KWORLD_ATSC110, |
3265 | },{ | 3306 | },{ |
3307 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3308 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3309 | .subvendor = 0x1461, | ||
3310 | .subdevice = 0x7360, | ||
3311 | .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B, | ||
3312 | },{ | ||
3313 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3314 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3315 | .subvendor = 0x1461, | ||
3316 | .subdevice = 0x6360, | ||
3317 | .driver_data = SAA7134_BOARD_AVERMEDIA_A169_B1, | ||
3318 | },{ | ||
3266 | /* --- boards without eeprom + subsystem ID --- */ | 3319 | /* --- boards without eeprom + subsystem ID --- */ |
3267 | .vendor = PCI_VENDOR_ID_PHILIPS, | 3320 | .vendor = PCI_VENDOR_ID_PHILIPS, |
3268 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 3321 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -3417,6 +3470,12 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
3417 | case SAA7134_BOARD_UPMOST_PURPLE_TV: | 3470 | case SAA7134_BOARD_UPMOST_PURPLE_TV: |
3418 | dev->has_remote = SAA7134_REMOTE_I2C; | 3471 | dev->has_remote = SAA7134_REMOTE_I2C; |
3419 | break; | 3472 | break; |
3473 | case SAA7134_BOARD_AVERMEDIA_A169_B: | ||
3474 | printk("%s: AVerMedia A169: dual saa7134 broadcast decoders\n" | ||
3475 | "%s: Sorry, none of the inputs to this chip are supported yet.\n" | ||
3476 | "%s: Dual decoder functionality is disabled for now, use the other chip.\n", | ||
3477 | dev->name,dev->name,dev->name); | ||
3478 | break; | ||
3420 | } | 3479 | } |
3421 | return 0; | 3480 | return 0; |
3422 | } | 3481 | } |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index f8c9b6760732..7d04ed330ec3 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -218,6 +218,8 @@ struct saa7134_format { | |||
218 | #define SAA7134_BOARD_TEVION_DVBT_220RF 88 | 218 | #define SAA7134_BOARD_TEVION_DVBT_220RF 88 |
219 | #define SAA7134_BOARD_ELSA_700TV 89 | 219 | #define SAA7134_BOARD_ELSA_700TV 89 |
220 | #define SAA7134_BOARD_KWORLD_ATSC110 90 | 220 | #define SAA7134_BOARD_KWORLD_ATSC110 90 |
221 | #define SAA7134_BOARD_AVERMEDIA_A169_B 91 | ||
222 | #define SAA7134_BOARD_AVERMEDIA_A169_B1 92 | ||
221 | 223 | ||
222 | #define SAA7134_MAXBOARDS 8 | 224 | #define SAA7134_MAXBOARDS 8 |
223 | #define SAA7134_INPUT_MAX 8 | 225 | #define SAA7134_INPUT_MAX 8 |