aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRickard Osser <ricky@osser.se>2006-03-11 15:14:12 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-21 11:53:11 -0500
commit68593af311aadb541b3b70acea175dea8e9cf7ca (patch)
treeec38cccc0099c961e539005dc42adc28447c3231
parentf3629be8388a679590eb919919ee63e2715ec25e (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.saa71342
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c59
-rw-r--r--drivers/media/video/saa7134/saa7134.h2
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
2761const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); 2802const 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