linux-mips
[Top] [All Lists]

[PATCH v2 01/10] of/irq: Rework of_irq_count()

To: Rob Herring <rob.herring@calxeda.com>, Grant Likely <grant.likely@linaro.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Thomas Gleixner <tglx@linutronix.de>
Subject: [PATCH v2 01/10] of/irq: Rework of_irq_count()
From: Thierry Reding <thierry.reding@gmail.com>
Date: Wed, 18 Sep 2013 15:24:43 +0200
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Ralf Baechle <ralf@linux-mips.org>, Russell King <linux@arm.linux.org.uk>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@linux-mips.org, linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=5Q0KmXVxA3axiF1QfSfX9nR5UTPk40ySv/j033sM998=; b=ONESxbL7wVzylxPvIN2ACHOosYmqtfIV5bTG4iMTW1xUQWxhEEz98/P9G2asjy77+1 VC2wyRBVLvqsOE88+TVGuoSIOwY7wDyUOpwlMJXi0x3iGzT4BxHIuLSk+vwnq9YpoAqD gZ4IMfTEsSg+0gdblWXY9ChPYKdGd8i2R0by05gsUIo6v2iaChQmw2+EYBoxEyBdZLYp R7Wa6ooNFtjT2bNV/6D9X6H9ZypqYLqNdlZx65CV5xTTtl4HIGbHh3EuVWB4JggY95gP /oos7xvP4bCkrcX5P8+8ik/mPrwFF4J6pD8CItaTLpfdxY02etofFNOhLFSZHMU617Cb 7UAw==
In-reply-to: <1379510692-32435-1-git-send-email-treding@nvidia.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1379510692-32435-1-git-send-email-treding@nvidia.com>
Sender: linux-mips-bounce@linux-mips.org
The of_irq_to_resource() helper that is used to implement of_irq_count()
tries to resolve interrupts and in fact creates a mapping for resolved
interrupts. That's pretty heavy lifting for something that claims to
just return the number of interrupts requested by a given device node.

Instead, use the more lightweight of_irq_map_one(), which, despite the
name, doesn't create an actual mapping. Perhaps a better name would be
of_irq_translate_one().

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/of/irq.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 1752988..5f44388 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -368,9 +368,10 @@ EXPORT_SYMBOL_GPL(of_irq_to_resource);
  */
 int of_irq_count(struct device_node *dev)
 {
+       struct of_irq irq;
        int nr = 0;
 
-       while (of_irq_to_resource(dev, nr, NULL))
+       while (of_irq_map_one(dev, nr, &irq) == 0)
                nr++;
 
        return nr;
-- 
1.8.4


<Prev in Thread] Current Thread [Next in Thread>