Re: Problems with commit 9ec36cafe4 (of/irq: do irq resolution in platform_get_irq) and mfd client devices
From: Rob Herring
Date: Tue Jun 17 2014 - 16:08:51 EST
On Tue, Jun 17, 2014 at 1:10 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> Hi,
>
> I have an mfd master and client drivers on a system which has devicetree
> enabled. The mfd master driver passes interrupts to the clients using
> mfd cells and 'struct resource'. The client driver is a platform driver
> which retrieves the irq using platform_get_irq().
>
> After commit 9ec36cafe (of/irq: do irq resolution in platform_get_irq),
> this code no longer works. This is because platform_get_irq() does no
> longer call platform_get_resource() if OF is enabled and if dev->of_node
> is not NULL (it is not NULL because there is other [static] information
> which is passed to the client with devicetree data).
>
> Any idea how to solve this problem ? How do I now pass a virtual interrupt
> from an mfd master to its clients if devicetree is enabled ?
The node ptr points to the MFD node or a child node? If there are
child nodes in DT, then why not define interrupts there too? If there
are not child nodes, then perhaps the child drivers should not have DT
knowledge.
Does it fail to get an interrupt or gets the parent interrupt instead?
We could probably make an error fall-back to looking at resources. Or
try to get irq from resources first, then call of_irq_get.
Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/