Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Avermedia 771 and sp887x



Hi all, 

I got my Avermedia 771 card to work with some help from Mark
Edwards. My symptoms were that all the modules were loading
successfully, but I could not tune any channels:

scanning dvb-t/au-Adelaide
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 226500000 1 3 9 3 1 1 0
initial transponder 177500000 1 2 9 3 1 2 0
initial transponder 191625000 1 3 9 3 1 1 0
initial transponder 219500000 1 3 9 3 1 1 0
initial transponder 564500000 1 2 9 3 1 2 0
>>> tune to: 226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE
WARNING: >>> tuning failed!!!
>>> tune to: 226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE (tuning failed)
WARNING: >>> tuning failed!!!
>>> tune to: 177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE
WARNING: >>> tuning failed!!!
>>> tune to: 177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE (tuning failed)
WARNING: >>> tuning failed!!!

[snip]

ERROR: initial tuning failed
dumping lists (0 services)

The modules I was loading were:

dvb-core
bttv
bt878
dvb-bt8xx
sp887x

The fix was to apply the following patch to sp887x.c:

dalek frontends # diff -u sp887x-old.c sp887x.c
--- sp887x-old.c        2004-10-07 03:05:14.000000000 +0930
+++ sp887x.c    2004-10-07 03:06:24.000000000 +0930
@@ -632,6 +632,7 @@
                sp887x_writereg(fe, 0xc18, 0x00d);
                break;

+#if 0
        case FE_GET_TUNE_SETTINGS:
        {
                struct dvb_frontend_tune_settings* fesettings = (struct dvb_frontend_tune_settings*) arg;
@@ -640,6 +641,7 @@
                fesettings->max_drift = 0;
                return 0;
        }
+#endif

        default:
                return -EOPNOTSUPP;

which is just commenting out this chunk of code:

        case FE_GET_TUNE_SETTINGS:
        {
                struct dvb_frontend_tune_settings* fesettings = (struct dvb_frontend_tune_settings*) arg;
                fesettings->min_delay_ms = 50;
                fesettings->step_size = 0;
                fesettings->max_drift = 0;
                return 0;
        }

This patch was applied to an otherwise stock 2.6.8 kernel (well, it's
gentoo-dev-sources patched, but I don't think they touch any DVB
stuff), and it works.

Why this works, I couldn't tell you. I'm good at blindly following
instructions :-)

I'm wondering, what is the proper fix - it'd be a shame to have to
patch my kernel each release in this way, not to mention difficult for
all the other avermedia users :-)

Here's the relevant parts of my dmesg, now that it's working:

Linux video capture interface: v1.00
bttv: driver version 0.9.15 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
Pin 2-19 already programmed
ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 19 (level, low) -> IRQ 169
bttv0: Bt878 (rev 17) at 0000:00:08.0, irq: 169, latency: 32, mmio: 0xcbdfe000
bttv0: detected: AverMedia AverTV DVB-T [card=104], PCI subsystem ID is 1461:0761
bttv0: using: Nebula Electronics DigiTV [card=104,autodetected]
bttv0: gpio: en=00000000, out=00000000 in=0090960d [init]
bttv0: IRQ lockup, cleared int mask [bits: OFLOW GPINT*]
bttv0: using tuner=-1
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: PLL: 28636363 => 35468950 .. ok
bttv0: add subdevice "dvb0"
bt878: AUDIO driver version 0.0.0 loaded
bt878: Bt878 AUDIO function found (0).
Pin 2-19 already programmed
ACPI: PCI interrupt 0000:00:08.1[A] -> GSI 19 (level, low) -> IRQ 169
bt878(0): Bt878 (rev 17) at 00:08.1, irq: 169, latency: 32, memory: 0xcbdff000
attach: checking "bt878 #0 [sw]"
find by pci: checking "bt878 #0 [sw]"
attach: "bt878 #0 [sw]", to card 0
DVB: registering new adapter (Avermed).
DVB: registering frontend 0:0 (Microtune MT7202DTF)...
via82xx: Assuming DXS channels with 48k fixed sample rate.
         Please try dxs_support=1 or dxs_support=4 option
         and report if it works on your machine.
Pin 2-22 already programmed
ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22 (level, low) -> IRQ 209
PCI: Setting latency timer of device 0000:00:11.5 to 64
i2c_adapter i2c-0: sendbytes: error - bailout.
sp887x_initial_setup: firmware upload... done.

	- Justin

-- 
Justin Hawkins | justin@hawkins.id.au
               | http://hawkins.id.au




Home | Main Index | Thread Index