On Tue, 15 Feb 2005, Michael Neuhauser wrote: > On Tue, 2005-02-15 at 12:46, [EMAIL PROTECTED] wrote: > > This is handled like SA11x0 / PXA2xx multiplexed interrupts: you install a > > handler, say, for CPU interrupt 2. In your IC's ISR you calculate a new > > (virtual) IRQ number, say, one of 32, 33, 34,..., and call do_IRQ(new_irq) > > recursively. > > I thunk ith Adeos the do_IRQ(new_irq) would be replaced by > adeos_schedule_irq(new_irq)
Exactly this we wanted to avoid. We knew that all interrupts behind this IC belonged to Linux, so RTAI / Adeos didn't even have to know about them:-) Never mind, our solution tried to be more optimal, but was less generic. > > Normally unmask is called in do_IRQ() after the handler. > > This is unchanged with Adeos, i.e. unmask() is still called in do_IRQ() > after the handler. I was talking about non Linux interrupts where you > have to do it yourself. by "do_IRQ" I mean either Linux *do_IRQ, or "old" RTAI dispatch_irq, or the trampoline-handler... IMHO, you shouldn't have to do it yourself. I am used to the "standard" mask_ack(); handler(); unmask(); sequence. Is anything wrong with it? Guennadi --------------------------------- Guennadi Liakhovetski, Ph.D. DSA Daten- und Systemtechnik GmbH Pascalstr. 28 D-52076 Aachen Germany
