On Wed, Oct 01, 2014 at 01:54:37PM -0400, Lennart Sorensen wrote: > Well gpio-omap has this: > > if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH)) > __irq_set_handler_locked(d->irq, handle_level_irq); > else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)) > __irq_set_handler_locked(d->irq, handle_edge_irq); > > > So I imagine it would call handle_level_irq in my case. When I don't > specify HIGH or LOW, it would call neither and I get no hang. I did > not try FALLING or RISING yet, although currently I suspect those would > hang too. > > I also see: > > ipipe_handle_demuxed_irq > (irq_find_mapping(bank->domain, bit)); > > That's in gpio-omap as well. I see no calls to generic_handle_irq?
I noticed gpio_unmask_irq in gpio-omap.c uses irqd_get_trigger_type to get the existing trigger type in case if was masked by setting it to type NONE. I don't see anywhere actually calling irqd_set_trigger_type though to actually populate the data with the desired trigger. Maybe I just missed it but I just don't see where that is being done. Doesn't explain the hang, but sure looks weird. -- Len Sorensen _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
