AVerMedia A169 Dual Analog tuner card
- From: Rickard Osser <ricky (at) osser.se>
- Date: Tue, 28 Feb 2006 23:15:06 +0100
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