From patchwork Mon Sep 16 08:31:58 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 275164 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 2C0292C00E2 for ; Mon, 16 Sep 2013 18:36:07 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756272Ab3IPIdV (ORCPT ); Mon, 16 Sep 2013 04:33:21 -0400 Received: from mail-bk0-f42.google.com ([209.85.214.42]:52094 "EHLO mail-bk0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755946Ab3IPIdS (ORCPT ); Mon, 16 Sep 2013 04:33:18 -0400 Received: by mail-bk0-f42.google.com with SMTP id my10so1395037bkb.29 for ; Mon, 16 Sep 2013 01:33:16 -0700 (PDT) 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=ZdrII8e535X1oBBRCXWGJgvGC3Avj7EeXPo+BDfqdbCkCoiALPdUhWuEltumOuSCXv +Yil1z0aEUtWNC20lF9L1DbKMZ2kUe2bozar0lkutaY/kEVefqH62UdkHIuClhQoysXc nATq9D4QO592WytCVS/L93R5XO/s6c+Fby/pR3Dbj/bz/EQrklrMceTZk7DcxXhCGk9m 8LHKVERtWIb8PlCsvxEfoxciGMZuKoVl3BtFsXGzYzlO9ATbiMQPYkcjHvEjDFlZnlK9 EXfAPgYuwGQ8FB/ES41S3I6dwQJ738G2N5UB7hldP7GT+qg30JkVSOZvLXecH633+Wkn 85sw== X-Received: by 10.204.231.76 with SMTP id jp12mr412499bkb.48.1379320396542; Mon, 16 Sep 2013 01:33:16 -0700 (PDT) Received: from localhost (port-49886.pppoe.wtnet.de. [46.59.195.122]) by mx.google.com with ESMTPSA id pk7sm6843336bkb.2.1969.12.31.16.00.00 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 16 Sep 2013 01:33:15 -0700 (PDT) From: Thierry Reding To: Greg Kroah-Hartman , Linus Walleij , Stephen Warren , Wolfram Sang , Grant Likely , Rob Herring , Benjamin Herrenschmidt , Thomas Gleixner Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, linux-tegra@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 1/9] of/irq: Rework of_irq_count() Date: Mon, 16 Sep 2013 10:31:58 +0200 Message-Id: <1379320326-13241-2-git-send-email-treding@nvidia.com> X-Mailer: git-send-email 1.8.4 In-Reply-To: <1379320326-13241-1-git-send-email-treding@nvidia.com> References: <1379320326-13241-1-git-send-email-treding@nvidia.com> Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.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 --- 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;