On Tue, Dec 02, 2014 at 10:20:59AM +0000, Terje Frøysa wrote:
> Thanks Gilles,
> 
> The flags are zero (from example code).... should I have used 
> RTDM_IRQTYPE_EDGE ?
> 
> err = rtdm_irq_request(&info->gpio_irq, gpio_irq_n, imu_irq_handler, 0, 
> THIS_MODULE->name,  NULL);

If the IRQ is of a certain type, you certainly want to pass the
right irq type.

Looking at the code:
- you only get the message after not returning RTDM_IRQ_HANDLED 1000
times, so, if you see the message, it is sure that some code is not
returning RTDM_IRQ_HANDLED, I suggest you check if the interrupt is
shared, and if another handler is not called
- the xenomai core skips reenabling the interrupts in that case, so,
if it gets reenabled, something re-enables it.

Are you sure that you do not register the handler to early, that it
fires because the hardware is not initialized, then gets disabled by
Xenomai core. Then later, your driver performs the hardware
initializations, and re-enables irqs ?

-- 
                                            Gilles.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to