From: Lee Jones <lee.jones@linaro.org>
To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
Cc: STEricsson_nomadik_linux@list.st.com,
linus.walleij@stericsson.com, arnd@arndb.de,
broonie@opensource.wolfsonmicro.com,
Lee Jones <lee.jones@linaro.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Grant Likely <grant.likely@secretlab.ca>
Subject: [PATCH 2/8] irqdomain: Take interrupt-parent property into account if specified
Date: Thu, 9 Aug 2012 16:53:49 +0100 [thread overview]
Message-ID: <1344527635-6163-3-git-send-email-lee.jones@linaro.org> (raw)
In-Reply-To: <1344527635-6163-1-git-send-email-lee.jones@linaro.org>
irq_find_host() currently ignores the 'interrupt-parent' property
even if it's specified in the Device Tree. Meaning that a node can
match to a domain in its hierarchy even if it doesn't belong to it.
By searching for the parent first using of_irq_find_parent() we
insist that the 'interrupt-parent' property is taken into account
ensuring a greater chance of returning the correct domain.
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
kernel/irq/irqdomain.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 49a7772..db63b9b 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -9,6 +9,7 @@
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
+#include <linux/of_irq.h>
#include <linux/of_address.h>
#include <linux/topology.h>
#include <linux/seq_file.h>
@@ -323,8 +324,14 @@ EXPORT_SYMBOL_GPL(irq_domain_add_tree);
struct irq_domain *irq_find_host(struct device_node *node)
{
struct irq_domain *h, *found = NULL;
+ struct device_node *parent_node;
int rc;
+ /* Take heed if an 'interrupt-parent' was specified. */
+ parent_node = of_irq_find_parent(node);
+ if (parent_node)
+ node = parent_node;
+
/* We might want to match the legacy controller last since
* it might potentially be set to match all interrupts in
* the absence of a device node. This isn't a problem so far
--
1.7.9.5
next prev parent reply other threads:[~2012-08-09 15:56 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-09 15:53 [PATCH 0/8] Changes surrounding IRQs and IRQ domains Lee Jones
2012-08-09 15:53 ` [PATCH 1/8] of/irq: Create stub for of_irq_find_parent when !CONFIG_OF Lee Jones
2012-08-09 16:20 ` Rob Herring
2012-08-09 19:44 ` Lee Jones
2012-08-09 19:53 ` Rob Herring
2012-08-14 8:17 ` Linus Walleij
2012-08-09 15:53 ` Lee Jones [this message]
2012-08-14 8:19 ` [PATCH 2/8] irqdomain: Take interrupt-parent property into account if specified Linus Walleij
2012-08-31 9:44 ` Lee Jones
2012-08-31 13:58 ` Rob Herring
2012-08-09 15:53 ` [PATCH 3/8] ARM: ux500: Identify the PRCMU as an interrupt controller Lee Jones
2012-08-14 8:19 ` Linus Walleij
2012-08-09 15:53 ` [PATCH 4/8] ARM: ux500: Force AB8500 to use the GIC as its " Lee Jones
2012-08-14 8:20 ` Linus Walleij
2012-08-09 15:53 ` [PATCH 5/8] mfd: Provide the PRCMU with its own IRQ domain Lee Jones
2012-08-14 8:29 ` Linus Walleij
2012-08-14 9:42 ` Arnd Bergmann
2012-08-14 10:44 ` Linus Walleij
2012-08-20 8:36 ` Lee Jones
2012-08-20 12:10 ` Mark Brown
2012-08-20 12:55 ` Lee Jones
2012-08-20 16:29 ` Mark Brown
2012-08-20 16:49 ` Lee Jones
2012-08-20 17:51 ` Mark Brown
2012-08-21 8:56 ` Lee Jones
2012-08-21 9:50 ` Mark Brown
2012-08-21 10:54 ` Lee Jones
2012-08-21 11:03 ` Mark Brown
2012-08-21 12:02 ` Lee Jones
2012-08-21 16:52 ` Mark Brown
2012-08-22 8:17 ` Lee Jones
2012-08-22 11:19 ` Mark Brown
2012-08-22 11:55 ` Lee Jones
2012-08-22 15:48 ` Mark Brown
2012-08-20 9:36 ` Lee Jones
2012-08-20 10:49 ` Lee Jones
2012-08-09 15:53 ` [PATCH 6/8] mfd: Use interrupt-parent as IRQ controller if specified in DT Lee Jones
2012-08-14 8:22 ` Linus Walleij
2012-08-09 15:53 ` [PATCH 7/8] mfd: Use the AB8500's IRQ domain to convert hwirq to virq Lee Jones
2012-08-14 8:25 ` Linus Walleij
2012-09-19 0:00 ` Samuel Ortiz
2012-08-09 15:53 ` [PATCH 8/8] input: ab8500-ponkey: Rely on MFD core to convert IRQs to virtual Lee Jones
2012-08-14 8:31 ` Linus Walleij
2012-08-21 9:23 ` Lee Jones
2012-08-21 16:42 ` Dmitry Torokhov
2012-08-30 13:12 ` Lee Jones
2012-08-30 23:02 ` Dmitry Torokhov
2012-08-30 23:03 ` Dmitry Torokhov
2012-08-31 7:31 ` Lee Jones
2012-08-31 14:50 ` Dmitry Torokhov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1344527635-6163-3-git-send-email-lee.jones@linaro.org \
--to=lee.jones@linaro.org \
--cc=STEricsson_nomadik_linux@list.st.com \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=grant.likely@secretlab.ca \
--cc=linus.walleij@stericsson.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).