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 [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.