Archived:AVerMedia AVerTV Hybrid+FM Cardbus (E506R)-V4L: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 145: Line 145:
</nowiki></pre>
</nowiki></pre>


Also you should use saa7134-tvaudio.c patch from [[AVerMedia_Cardbus_Plus_E501R E501R card how-to]] if we need SECAM sound.
Also you should use saa7134-tvaudio.c patch from [[AVerMedia_Cardbus_Plus_E501R]] if we need SECAM sound.


So... someone, please assign E506R valid card id insted 99, cleanup and include this code to the tree, etc.
So... someone, please assign E506R valid card id insted 99, cleanup and include this code to the tree, etc.

Revision as of 02:26, 18 October 2006

AVerMedia TV+FM CardBus E506R

Original product page

AVermedia released their card with binary only driver for Mandriva and FC3/4. For ancient kernels of course. Due to licensing from chip vendor and the fact that AVerMedia is a proud GPL violator -- they do not bother publishing source for their driver that is actually based on V4L.

Looking inside the card we can see that it is:

- Philips SAA7135HL PCI Audio/Video Broadcast Decoder - Xceive XC3028 Silicon Tuner - Zarlink MT352 Digital Terrestrial TV Demodulator

So...

Excuse me for beeing dumb and stupid, but I just took Marcus' code for Em2880 from his repository at http://linuxtv.org/hg/~mrechberger/v4l-dvb

And added XC3028 tuner defintion to SAA7134 code, leaving gpio initialization as for AverMedia E500 card.

Guess what? It worked :)

Screenshot is here

Dmesg follows:

Linux video capture interface: v1.00
em28xx v4l2 driver version 0.0.1 loaded
usbcore: registered new driver em28xx
/home/lesha/dev/e506r/v4l-dvb/v4l/mt2060-tuner.c: mt2060_module_init
saa7130/34: v4l2 driver version 0.2.14 loaded
ACPI: PCI Interrupt 0000:03:00.0[A] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11
saa7133[0]: found at 0000:03:00.0, rev: 209, irq: 11, latency: 64, mmio: 0x58000000
saa7133[0]: subsystem: 1461:f436, board: AVerMedia Cardbus TV/Radio (E506) [card=99,insmod option]
saa7133[0]: board init: gpio is effffff
tuner 0-0061: chip found @ 0xc2 (saa7133[0])
xc3028-tuner.c: only analogue and DVB-T are supported at the moment
saa7133[0]: i2c eeprom 00: 61 14 36 f4 00 00 00 00 00 00 00 00 00 00 00 00
saa7133[0]: i2c eeprom 10: 00 ff e2 0e ff 20 ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 03 08 ff 00 ff ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
xc3028-tuner.c: selected videostandard PAL-B/G
xc3028-tuner.c: ANALOG Mode!
xc3028-tuner.c: loading new firmware
xc3028-tuner.c: Successfully loaded Firmware: 1027
xc3028-tuner.c: V4L2_STD_PAL
xc3028-tuner.c: V4L2_STD_PAL
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
saa7133[0]: registered device radio0
saa7134 ALSA driver for DMA sound loaded
saa7133[0]/alsa: saa7133[0] at 0x58000000 irq 11 registered as card -1

The patches (dirty way, sorry, I'm not a programmer)

--- v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h   2006-10-18 06:10:22.000000000 +0400
+++ /home/lesha/saa7134.h       2006-10-18 06:09:20.000000000 +0400
@@ -229,6 +229,8 @@
 #define SAA7134_BOARD_ELSA_700TV       89
 #define SAA7134_BOARD_KWORLD_ATSC110   90

+#define SAA7134_BOARD_AVERMEDIA_CARDBUS_506    99
+
 #define SAA7134_MAXBOARDS 8
 #define SAA7134_INPUT_MAX 8


--- v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c     2006-10-18 06:10:22.000000000 +0400
+++ /home/lesha/saa7134-cards.c 2006-10-18 06:09:02.000000000 +0400
@@ -1564,11 +1564,38 @@
                        .gpio = 0x01,
                },
        },
-       [SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
+        [SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
+                /* Kees.Blom@cwi.nl */
+                .name           = "AVerMedia Cardbus TV/Radio (E500)",
+                .audio_clock    = 0x187de7,
+                .tuner_type     = TUNER_PHILIPS_TDA8290,
+                .radio_type     = UNSET,
+                .tuner_addr     = ADDR_UNSET,
+                .radio_addr     = ADDR_UNSET,
+                .inputs         = {{
+                        .name = name_tv,
+                        .vmux = 1,
+                        .amux = TV,
+                        .tv   = 1,
+                },{
+                        .name = name_comp1,
+                        .vmux = 3,
+                        .amux = LINE2,
+                },{
+                        .name = name_svideo,
+                        .vmux = 8,
+                        .amux = LINE1,
+                }},
+                .radio = {
+                        .name = name_radio,
+                        .amux = LINE1,
+                },
+        },
+       [SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
                /* Kees.Blom@cwi.nl */
-               .name           = "AVerMedia Cardbus TV/Radio (E500)",
+               .name           = "AVerMedia Cardbus TV/Radio (E506)",
                .audio_clock    = 0x187de7,
-               .tuner_type     = TUNER_PHILIPS_TDA8290,
+               .tuner_type     = TUNER_XCEIVE_XC3028,
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
@@ -3002,6 +3029,13 @@
                .subdevice    = 0xd6ee,
                .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
        },{
+                /* AVerMedia CardBus 506 */
+                .vendor       = PCI_VENDOR_ID_PHILIPS,
+                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
+                .subdevice    = 0xf436,
+                .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
+        },{
                /* TransGear 3000TV */
                .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
@@ -3435,6 +3469,7 @@
                saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00);
                break;
        case SAA7134_BOARD_AVERMEDIA_CARDBUS:
+        case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
                /* power-up tuner chip */
                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);

Also you should use saa7134-tvaudio.c patch from AVerMedia_Cardbus_Plus_E501R if we need SECAM sound.

So... someone, please assign E506R valid card id insted 99, cleanup and include this code to the tree, etc.


Respect товарищу Hayova за 501R ;)))