ARM interrupts fixes

Rafal Jaworowski raj at semihalf.com
Thu Sep 4 14:00:11 UTC 2008


Hi,
Please review the following changes around interrupts handling in ARM. We
already started discussing these items with Olivier some time ago:

1. http://people.freebsd.org/~raj/patches/arm/intr-fixes.diff

At the moment nexus_setup_intr() attempts to set up a number of IRQs in one
take, calling arm_setup_irqhandler() in loop. This is bogus, as there's just
one cookie given from the caller and it is overwritten in each iteration so
that only the last handler's cookie value prevails...

This patch removes such behaviour, however there's one [mis]user of the old
approach  i.e. the IXP425 qmgr, which needs adjustments too, see p.2.

Apart from style fixes, another problem which is corrected in this patch is
the unmasking the IRQ source in the PIC after the last handler has been
removed from list.


2. http://people.freebsd.org/~raj/patches/arm/sys-arm-xscale-ixp425.diff

This splits handling of the two QMGR interrupts so they are explicitly
managed, as typically done in cases when there are a number of physical IRQs
used by one driver. I don't have IXP425 hardware and was able to only
compile-test it, so any help with real h/w testing would be appreciated.

Let me know your comments.

Rafal


More information about the freebsd-arm mailing list