On Sun, May 16, 2004 at 12:36:22PM +0100, Kieran Fulke wrote:
> On Fri, May 14, 2004 at 08:43:44AM +0100, Peter Horton wrote:
>
> > Have you tried any other hardware in the slot, PCI network card perhaps ?
> >
> > P.
>
> yeah. adding cards like a tulip network card, linksys wmp11 wireless card.
> even a
> wintv pci (analogue) card all work ;
...
> it just seems to be the DVB card that the pci code doesnt like, for some
> reason ..
>
> all ideas warmly received ;)
Let me add some information from your posts to linux-dvb and from
the driver source.
I would appreciate it if someone could look it over (full source
is in linux/drivers/media/common/saa7146_core.c). The driver is
known to work on a variety of platforms, including one TX49 based
development system (last tested a few months back, though).
From your first posting:
PCI: Setting latency timer of device 0000:00:0a.0 to 64
irq 23: nobody cared!
Call Trace: [snipped]
handlers:
[<c004b570>]
Disabling IRQ #23
saa7146: found saa7146 @ mem b2080800 (revision 1, irq 23) (0x13c2,0x1011).
Second try with debug enabled:
saa7146: saa7146_register_extension(): ext:c001efb0
saa7146: register extension 'budget_ci dvb'.
saa7146: saa7146_init_one(): pci:83fdac00
irq 23: nobody cared!
saa7146_init_one() does the following:
/* disable all irqs */
saa7146_write(dev, IER, 0);
...
if (request_irq(dev->pci->irq, interrupt_hw, SA_SHIRQ | SA_INTERRUPT,
dev->name, dev))
{error...}
...
INFO(("found saa7146 @ mem %p (revision %d, irq %d)
(0x%04x,0x%04x).\n", ...));
interrupt_hw() does:
/* read out the interrupt status register */
isr = saa7146_read(dev, ISR);
/* is this our interrupt? */
if ( 0 == isr ) {
/* nope, some other device */
return IRQ_NONE;
}
...
return IRQ_HANDLED;
In essence, I believe something other than the saa7146 must be asserting irq 23.
Or is it possible that a bug in the PCI init stuff in saa7146_core.c can
cause this? Any hints how we could debug this would be welcome.
Johannes
|