I think the problem becomes more urgent with the new motherboards that
have a hardware link between the interrupt lines of the different PCI slots.
For me the problem is quite urgent. We just have fished the development of
a box. At the last moment we changed to a PPRO motherboard, to support ECC or
parity, and encounterd this new (to me) problem.
>A solution is available by reworking the existing fast/slow irq handlers, e.g.:
>
> 1. Walk the interrupt list for the signalled irq for FAST interrupts (irqs disabled)
> 2. enable irqs
> 3. if slow_irq_flag is set return (as for current fast irqs)
> 4. set a slow_irq_flag
> 5. walk the interrupt list for slow irqs
> 6. clear the slow_interrupt_flag
> 7. return (via signal handler code as for normal slow interrupts)
I think this is a direction to go, but I can not oversee all the consequences.
Maybe using the real-time Linux extensions might help to implement this.
>My questions on your proposal are:
>
>> Get a list of all available PCI IRQ's, assign the first one
>How to differentiate between ISA and PCI interrupts?
>
>> The pci_set_*_irq call should be called in all drivers, just
>> before the call of pcibios_read_config_byte() for the irq.
>How will you figure out the mapping from the INT lines to the interrupt
>controller IC inputs?
I allready mailed some interfaces to do so. But as some interrupt lines
can be tied together (randomly), it's no use changing the IRQ asignments.
Chel