By Date: <-- -->
By Thread: <-- -->

AVerMedia A169 Dual Analog tuner card



Hi,

here's an up2date patch for the functionality I've got working on the
AVerMedia A169 (Dual Analog tuner card). saa7134-alsa is working as is
the B1 tuner, B1 SVIDEO and B1 composite through SVIDEO.

- Added the correct subvendor and subdevice for both parts of the card
(looks like 2 cards, B1 and B)
- Enabled tuner B1, SVIDEO on B1 and composite1 through SVIDEO, B is
more or less dead at this point and I suspect the FM-radio i on the B
part of the board

Signed-off-by: Rickard Osser <ricky (at) osser.se>

diff -ur v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134-cards.c
v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c
--- v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134-cards.c
2006-02-28 22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c	2006-02-28
23:00:36.000000000 +0100
 (at)  (at)  -2758,6 +2758,78  (at)  (at)
 			.amux = LINE2,
 		}},
 	},
+		[SAA7134_BOARD_AVERMEDIA_A169_B] = {  
+		 /* AVerMedia A169  */
+		 /* Rickard Osser <ricky (at) osser.se>  */
+		.name		= "AVerMedia A169 B",
+		.audio_clock    = 0x02187de7,
+		.tuner_type	= TUNER_LG_TALN,
+		.radio_type     = UNSET,
+		.tuner_addr	= ADDR_UNSET,
+		.radio_addr	= ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT, 
+		.gpiomask       = 0x0a60000,
+		.inputs         = { /* {
+			.name = name_tv,
+			.vmux = 4,
+			.amux = TV,
+			.tv   = 1,
+			.gpio = 0x00a68300,
+		},{
+			.name = name_comp1,
+			.vmux = 3,
+			.amux = LINE1,
+		},{
+			.name = name_comp2,     */  /*  Composite SVIDEO (B/W if signal is
carried with SVIDEO) */ /*
+			.vmux = 1,
+			.amux = LINE1,
+		},{
+			.name = name_svideo,
+			.vmux = 9,              */  /*    9 is correct as S-VIDEO according
to a169.inf! */ /*
+			.amux = LINE1,
+		} */ },
+		/*		.radio = {
+			.name = name_radio,
+			.amux = LINE2,
+			.gpio = 0x00a68300,
+			}, */
+	}, 
+	[SAA7134_BOARD_AVERMEDIA_A169_B1] = {
+		/* AVerMedia A169 */
+		/* Rickard Osser <ricky (at) osser.se> */
+		.name		= "AVerMedia A169 B1",
+		.audio_clock    = 0x02187de7,
+		.tuner_type	= TUNER_LG_TALN,
+		.radio_type     = UNSET,
+		.tuner_addr	= ADDR_UNSET,
+		.radio_addr	= ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.gpiomask       = 0xca60000,
+		.inputs         = {{
+			.name = name_tv,
+			.vmux = 4,
+			.amux = TV,
+			.tv   = 1,
+			.gpio = 0x04a61000,
+			/*		},{
+			.name = name_comp1,
+			.vmux = 3,
+			.amux = LINE1,  */
+		},{ 
+			.name = name_comp2,    /*  Composite SVIDEO (B/W if signal is
carried with SVIDEO) */ 
+			.vmux = 1,
+			.amux = LINE2,
+		},{  
+			.name = name_svideo,
+			.vmux = 9,             /* 9 is correct as S-VIDEO1 according to
a169.inf! */ 
+			.amux = LINE1,
+		}},
+		/*		.radio = {                      
+			.name = name_radio,
+			.amux = LINE2,
+			.gpio = 0x0ca61000,
+		}, */ 
+	},
 };
 
 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
 (at)  (at)  -3265,6 +3337,18  (at)  (at)
 		.subdevice    = 0x7350,
 		.driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
 	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x1461, //  Avermedia Technologies Inc 
+		.subdevice    = 0x7360,
+		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
+		.subdevice    = 0x6360,
+		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
+	},{
 		/* --- boards without eeprom + subsystem ID --- */
 		.vendor       = PCI_VENDOR_ID_PHILIPS,
 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
Only in v4l-dvb/linux/drivers/media/video/saa7134: saa7134-cards.c~
diff -ur v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134.h
v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h
--- v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134.h	2006-02-28
22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h	2006-02-28
22:54:33.000000000 +0100
 (at)  (at)  -228,6 +228,9  (at)  (at)
 #define SAA7134_BOARD_TEVION_DVBT_220RF 88
 #define SAA7134_BOARD_ELSA_700TV       89
 #define SAA7134_BOARD_KWORLD_ATSC110   90
+#define SAA7134_BOARD_AVERMEDIA_A169_B 91
+#define SAA7134_BOARD_AVERMEDIA_A169_B1 92
+
 
 #define SAA7134_MAXBOARDS 8
 #define SAA7134_INPUT_MAX 8
Only in v4l-dvb/linux/drivers/media/video/saa7134: saa7134.h~
diff -ur v4l-dvb.org/linux/drivers/media/video/tuner-types.c
v4l-dvb/linux/drivers/media/video/tuner-types.c
--- v4l-dvb.org/linux/drivers/media/video/tuner-types.c	2006-02-28
22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/tuner-types.c	2006-02-28
22:53:45.000000000 +0100
 (at)  (at)  -1032,6 +1032,22  (at)  (at)
 	},
 };
 
+/* ------------ TUNER_LG_TALN - LGINNOTEK PAL/SECAM ------------ */
+
+static struct tuner_range tuner_lg_taln_ranges[] = {
+	{ 16 * 150.00 /*MHz*/, 0x8e, 0x01, },
+	{ 16 * 425.00 /*MHz*/, 0x8e, 0x02, },
+	{ 16 * 999.99        , 0x8e, 0x08, },
+};
+
+static struct tuner_params tuner_lg_taln_params[] = {
+	{
+		.type   = TUNER_PARAM_TYPE_PAL,
+		.ranges = tuner_lg_taln_ranges,
+		.count  = ARRAY_SIZE(tuner_lg_taln_ranges),
+	},
+};
+
 /*
--------------------------------------------------------------------- */
 
 struct tunertype tuners[] = {
 (at)  (at)  -1403,6 +1419,10  (at)  (at)
 		.name	= "Xceive xc3028",
 		/* see xc3028.c for details */
 	},
+	[TUNER_LG_TALN] = { /* LG Innotek PAL/SECAM */
+	        .name   = "LG PAL/SECAM (TALN series)",
+	        .params = tuner_lg_taln_params,
+	},
 };
 
 unsigned const int tuner_count = ARRAY_SIZE(tuners);
diff -ur v4l-dvb.org/linux/drivers/media/video/tveeprom.c
v4l-dvb/linux/drivers/media/video/tveeprom.c
--- v4l-dvb.org/linux/drivers/media/video/tveeprom.c	2006-02-28
22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/tveeprom.c	2006-02-28
22:53:45.000000000 +0100
 (at)  (at)  -180,7 +180,7  (at)  (at)
 	{ TUNER_ABSENT,        "LG TALN H250T"},
 	{ TUNER_ABSENT,        "LG TALN M200T"},
 	{ TUNER_ABSENT,        "LG TALN Z200T"},
-	{ TUNER_ABSENT,        "LG TALN S200T"},
+	{ TUNER_LG_TALN,       "LG TALN S200T"},
 	{ TUNER_ABSENT,        "Thompson DTT7595"},
 	{ TUNER_ABSENT,        "Thompson DTT7592"},
 	{ TUNER_ABSENT,        "Silicon TDA8275C1 8290"},
diff -ur v4l-dvb.org/linux/include/media/tuner.h
v4l-dvb/linux/include/media/tuner.h
--- v4l-dvb.org/linux/include/media/tuner.h	2006-02-28
22:50:59.000000000 +0100
+++ v4l-dvb/linux/include/media/tuner.h	2006-02-28 22:53:45.000000000
+0100
 (at)  (at)  -119,6 +119,7  (at)  (at)
 #define TUNER_SAMSUNG_TCPN_2121P30A     70 	/* Hauppauge PVR-500MCE
NTSC */
 
 #define TUNER_XCEIVE_XC3028		71
+#define TUNER_LG_TALN                   72 	/* AVerMedia A169 PAL/SECAM
*/
 
 /* tv card specific */
 #define TDA9887_PRESENT 		(1<<0)



-- 
Rickard Osser
Manager
-----------------------------------------------------------------------
| Osser Lindist AB            | Swedens No 1 distributor of Linux      |
!                             | and Linux related products!            |
------------------------------------------------------------------------
| Osser Brosoft AB            | Computer Consultants                   |
------------------------------------------------------------------------
| Solberga ÃngsvÃg 3          | S-125 44 Bagarmossen, Sweden           |
| Tel: +46-8-669 75 75        | E-mail: ricky (at) osser.se                 |
| Fax: +46-8-668 89 10        | http://www.lindist.se                  |
-----------------------------------------------------------------------

diff -ur v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134-cards.c v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c
--- v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134-cards.c	2006-02-28 22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c	2006-02-28 23:00:36.000000000 +0100
 (at)  (at)  -2758,6 +2758,78  (at)  (at) 
 			.amux = LINE2,
 		}},
 	},
+		[SAA7134_BOARD_AVERMEDIA_A169_B] = {  
+		 /* AVerMedia A169  */
+		 /* Rickard Osser <ricky (at) osser.se>  */
+		.name		= "AVerMedia A169 B",
+		.audio_clock    = 0x02187de7,
+		.tuner_type	= TUNER_LG_TALN,
+		.radio_type     = UNSET,
+		.tuner_addr	= ADDR_UNSET,
+		.radio_addr	= ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT, 
+		.gpiomask       = 0x0a60000,
+		.inputs         = { /* {
+			.name = name_tv,
+			.vmux = 4,
+			.amux = TV,
+			.tv   = 1,
+			.gpio = 0x00a68300,
+		},{
+			.name = name_comp1,
+			.vmux = 3,
+			.amux = LINE1,
+		},{
+			.name = name_comp2,     */  /*  Composite SVIDEO (B/W if signal is carried with SVIDEO) */ /*
+			.vmux = 1,
+			.amux = LINE1,
+		},{
+			.name = name_svideo,
+			.vmux = 9,              */  /*    9 is correct as S-VIDEO according to a169.inf! */ /*
+			.amux = LINE1,
+		} */ },
+		/*		.radio = {
+			.name = name_radio,
+			.amux = LINE2,
+			.gpio = 0x00a68300,
+			}, */
+	}, 
+	[SAA7134_BOARD_AVERMEDIA_A169_B1] = {
+		/* AVerMedia A169 */
+		/* Rickard Osser <ricky (at) osser.se> */
+		.name		= "AVerMedia A169 B1",
+		.audio_clock    = 0x02187de7,
+		.tuner_type	= TUNER_LG_TALN,
+		.radio_type     = UNSET,
+		.tuner_addr	= ADDR_UNSET,
+		.radio_addr	= ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.gpiomask       = 0xca60000,
+		.inputs         = {{
+			.name = name_tv,
+			.vmux = 4,
+			.amux = TV,
+			.tv   = 1,
+			.gpio = 0x04a61000,
+			/*		},{
+			.name = name_comp1,
+			.vmux = 3,
+			.amux = LINE1,  */
+		},{ 
+			.name = name_comp2,    /*  Composite SVIDEO (B/W if signal is carried with SVIDEO) */ 
+			.vmux = 1,
+			.amux = LINE2,
+		},{  
+			.name = name_svideo,
+			.vmux = 9,             /* 9 is correct as S-VIDEO1 according to a169.inf! */ 
+			.amux = LINE1,
+		}},
+		/*		.radio = {                      
+			.name = name_radio,
+			.amux = LINE2,
+			.gpio = 0x0ca61000,
+		}, */ 
+	},
 };
 
 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
 (at)  (at)  -3265,6 +3337,18  (at)  (at) 
 		.subdevice    = 0x7350,
 		.driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
 	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x1461, //  Avermedia Technologies Inc 
+		.subdevice    = 0x7360,
+		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x1461, /* Avermedia Technologies Inc */
+		.subdevice    = 0x6360,
+		.driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
+	},{
 		/* --- boards without eeprom + subsystem ID --- */
 		.vendor       = PCI_VENDOR_ID_PHILIPS,
 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
Only in v4l-dvb/linux/drivers/media/video/saa7134: saa7134-cards.c~
diff -ur v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134.h v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h
--- v4l-dvb.org/linux/drivers/media/video/saa7134/saa7134.h	2006-02-28 22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h	2006-02-28 22:54:33.000000000 +0100
 (at)  (at)  -228,6 +228,9  (at)  (at) 
 #define SAA7134_BOARD_TEVION_DVBT_220RF 88
 #define SAA7134_BOARD_ELSA_700TV       89
 #define SAA7134_BOARD_KWORLD_ATSC110   90
+#define SAA7134_BOARD_AVERMEDIA_A169_B 91
+#define SAA7134_BOARD_AVERMEDIA_A169_B1 92
+
 
 #define SAA7134_MAXBOARDS 8
 #define SAA7134_INPUT_MAX 8
Only in v4l-dvb/linux/drivers/media/video/saa7134: saa7134.h~
diff -ur v4l-dvb.org/linux/drivers/media/video/tuner-types.c v4l-dvb/linux/drivers/media/video/tuner-types.c
--- v4l-dvb.org/linux/drivers/media/video/tuner-types.c	2006-02-28 22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/tuner-types.c	2006-02-28 22:53:45.000000000 +0100
 (at)  (at)  -1032,6 +1032,22  (at)  (at) 
 	},
 };
 
+/* ------------ TUNER_LG_TALN - LGINNOTEK PAL/SECAM ------------ */
+
+static struct tuner_range tuner_lg_taln_ranges[] = {
+	{ 16 * 150.00 /*MHz*/, 0x8e, 0x01, },
+	{ 16 * 425.00 /*MHz*/, 0x8e, 0x02, },
+	{ 16 * 999.99        , 0x8e, 0x08, },
+};
+
+static struct tuner_params tuner_lg_taln_params[] = {
+	{
+		.type   = TUNER_PARAM_TYPE_PAL,
+		.ranges = tuner_lg_taln_ranges,
+		.count  = ARRAY_SIZE(tuner_lg_taln_ranges),
+	},
+};
+
 /* --------------------------------------------------------------------- */
 
 struct tunertype tuners[] = {
 (at)  (at)  -1403,6 +1419,10  (at)  (at) 
 		.name	= "Xceive xc3028",
 		/* see xc3028.c for details */
 	},
+	[TUNER_LG_TALN] = { /* LG Innotek PAL/SECAM */
+	        .name   = "LG PAL/SECAM (TALN series)",
+	        .params = tuner_lg_taln_params,
+	},
 };
 
 unsigned const int tuner_count = ARRAY_SIZE(tuners);
diff -ur v4l-dvb.org/linux/drivers/media/video/tveeprom.c v4l-dvb/linux/drivers/media/video/tveeprom.c
--- v4l-dvb.org/linux/drivers/media/video/tveeprom.c	2006-02-28 22:50:59.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/tveeprom.c	2006-02-28 22:53:45.000000000 +0100
 (at)  (at)  -180,7 +180,7  (at)  (at) 
 	{ TUNER_ABSENT,        "LG TALN H250T"},
 	{ TUNER_ABSENT,        "LG TALN M200T"},
 	{ TUNER_ABSENT,        "LG TALN Z200T"},
-	{ TUNER_ABSENT,        "LG TALN S200T"},
+	{ TUNER_LG_TALN,       "LG TALN S200T"},
 	{ TUNER_ABSENT,        "Thompson DTT7595"},
 	{ TUNER_ABSENT,        "Thompson DTT7592"},
 	{ TUNER_ABSENT,        "Silicon TDA8275C1 8290"},
diff -ur v4l-dvb.org/linux/include/media/tuner.h v4l-dvb/linux/include/media/tuner.h
--- v4l-dvb.org/linux/include/media/tuner.h	2006-02-28 22:50:59.000000000 +0100
+++ v4l-dvb/linux/include/media/tuner.h	2006-02-28 22:53:45.000000000 +0100
 (at)  (at)  -119,6 +119,7  (at)  (at) 
 #define TUNER_SAMSUNG_TCPN_2121P30A     70 	/* Hauppauge PVR-500MCE NTSC */
 
 #define TUNER_XCEIVE_XC3028		71
+#define TUNER_LG_TALN                   72 	/* AVerMedia A169 PAL/SECAM */
 
 /* tv card specific */
 #define TDA9887_PRESENT 		(1<<0)
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request (at) redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list