Mailing List archive

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

[linux-dvb] Re: Dvb kernel w/Nebula chewing CPU time - SOLVED!



Clyde Stubbs wrote:
I solved the problem described in my previous message. After
trying many, many other things I added
code to the bt878 interrupt routine to count spurious interrupts
(i.e. function called with no BT878 interrupt flags set). There
were 50 spurious for every real interrupt.

The problem turned out ot be that the bttv driver enables the
GPINT interrupt on the bt878, for the purpose of an IR remote
control. Unfortunately, the GPIO inputs are connected on the
Nebula card to the output of the Nxt6000 decoder, so there was
a furious number of interrupts generated whenever it was
delivering a data stream.

The immediate workaround is to add "gpint=0" to the modprobe bttv
line in the startup script.

The proper solution will be a patch to the bttv driver so that
individual cards can be flagged as not wanting the GPIO interrupt.

18000 interrupts/second takes up a lot of CPU time...
With this fixed, the overhead of the demux filter code is only
around 1% of an XP2000+.

Oh, and the reason the problem sometimes spontaneously went away
was because occasionally the interrupt rate would be high enough
to provoke the bttv interrupt handler into declaring a stuck
interrupt and clearing all the interrupt enable flags (which
didn't affect the dvb code, which actually uses the audio
DMA and interrupts to stream the digital data).
Can you please prepare a patch that disables this interrupt pin for the Nebula cards? You can probably use the PCI vendor/device id to distinguish the device from others...

Holger



--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index