Subject: Re: results of the IRC debug patch
To: Tim Kelly <hockey@dialectronics.com>
From: Michael <macallan18@earthlink.net>
List: port-macppc
Date: 12/04/2004 08:51:24
Hello,

> >Well, it /is/ related.
> >
> >this change
> >#if 0
> >	if (virq[irq])
> >		return virq[irq];
> >#endif
> >leads to everything behind the PCI bridge ( and all the USB controllers )
> >in my S900 which share IRQ 25 >getting an own virq assigned which
> >apparently doesn't work - changing the #if 0 to 1 or removing it >allows
> >USB to work again.
> 
> Ugh. Didn't see that one coming. I'd like to figure out if some code was
> removed that differentiated between the interrupt types when determining
> the irq handler to call. When esp and mace share the same virq 2, I don't
> see how mace's handlers get called if the virq to be processed is 2.

Hmm, in my naivity I'd think that assigning different virqs to PCI devices sharing the same IRQ ( be it through a bridge or different functions of the same device, like many USB controllers ) isn't a bad thing - this could hide the sharing from the drivers - well, as long as the kernel can figure out where the IRQ really came from. Can it do that with a PCI bridge? I mean - is there a register in the bridge to indicate which slots fired IRQs?
So I guess everything on the USB card ( 3xOHCI, 1x EHCI ) should share the same virq, but the audio card should get a different one.

> But if we could get some real support for this port amateurs like myself
> wouldn't be trying to fix things.
Indeed.

have fun
Michael