On Sat, Sep 13, 2008 at 6:41 PM, Roland Dreier <[EMAIL PROTECTED]> wrote: > > Can someone point me at a simple example of how to demux irqs using > > the powerpc irq functions? I have eight devices on a single irq and I > > want to turn them into virtual irqs. > > Sorry about the previous reply. > > Anyway, what are you going to demux based on? Do you have some other > signal you can read in the interrupt dispatch code that tells you which > device raised the interrupt? What happens if two devices raise an > interrupt at the same time? > > If you just have 8 interrupt lines wire-ORed together then you probably > just need to register your interrupt handlers with IRQF_SHARED and run 8 > interrupt handlers on an interrupt.
The muxed interrupts are inside a SOC CPU. For example eight GPIOs can each individually be enabled to trigger hardware interrupt 7. When I get hw interrupt 7 i want to demux it into 8 virtual interrupts. There are eight bit registers for individually acking, enabling, etc each of the eight multiplexed interrupts. With eight virutal interrupts each user can register a different handler and isn't aware the muxing is going on. -- Jon Smirl [EMAIL PROTECTED] _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev