Problem with of_irq_to_resource() and IRQ flags

jonsmirl at gmail.com jonsmirl at gmail.com
Mon Apr 16 04:38:57 EST 2012


I'm trying to enable the dm9000 driver for DT support.  I've run into
a problem with the interrupt flags. The dm9000 driver is expecting to
get them passed in on the resource flags:

unsigned long irqflags = db->irq_res->flags & IRQF_TRIGGER_MASK;

But of_irq_to_resource() is not adding them:

		r->flags = IORESOURCE_IRQ;

Now if I trace into of_irq_to_resource() it calls
irq_of_parse_and_map() which calls irq_create_of_mapping() which then
calls  domain->ops->dt_translate() to get the flags.  So we have the
flags down the callstack but passing them back means adding a
parameter to a public API.

I can't see any API to ask an irq for its current flags. That would be
another way to get them and add them to the resource.

Any other options?

-- 
Jon Smirl
jonsmirl at gmail.com


More information about the devicetree-discuss mailing list