From patchwork Wed Mar 5 13:25:48 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lucas Stach X-Patchwork-Id: 3774631 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id CE1FEBF13A for ; Wed, 5 Mar 2014 13:27:03 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 0325220256 for ; Wed, 5 Mar 2014 13:27:03 +0000 (UTC) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1A56E20222 for ; Wed, 5 Mar 2014 13:27:02 +0000 (UTC) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1WLBqc-00061K-JD; Wed, 05 Mar 2014 13:26:58 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1WLBqZ-0001Lo-Od; Wed, 05 Mar 2014 13:26:55 +0000 Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1WLBqW-0001H6-5b for linux-arm-kernel@lists.infradead.org; Wed, 05 Mar 2014 13:26:53 +0000 Received: from weser.hi.pengutronix.de ([10.1.0.109]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1WLBq7-0007xQ-AO; Wed, 05 Mar 2014 14:26:27 +0100 From: Lucas Stach To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 3/6] PCI: rcar: use new OF interrupt mapping when possible Date: Wed, 5 Mar 2014 14:25:48 +0100 Message-Id: <1394025951-32438-4-git-send-email-l.stach@pengutronix.de> X-Mailer: git-send-email 1.9.0 In-Reply-To: <1394025951-32438-1-git-send-email-l.stach@pengutronix.de> References: <1394025951-32438-1-git-send-email-l.stach@pengutronix.de> X-SA-Exim-Connect-IP: 10.1.0.109 X-SA-Exim-Mail-From: l.stach@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140305_082652_529187_9BA0635D X-CRM114-Status: GOOD ( 15.20 ) X-Spam-Score: 1.1 (+) Cc: devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Arnd Bergmann , Stephen Warren , linux-sh@vger.kernel.org, linux-pci@vger.kernel.org, Jingoo Han , Bjorn Helgaas , Simon Horman , Thierry Reding , Ben Dooks , linux-tegra@vger.kernel.org, Kukjin Kim , Shawn Guo , kernel@pengutronix.de X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,KHOP_BIG_TO_CC, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This is the recommended method of doing the IRQ mapping. Still fall back to the old method in order to not break the just submitted board files. Signed-off-by: Lucas Stach Acked-by: Simon Horman --- v2: pass in parent device to pci_common_init(), to make DT parsing work. --- drivers/pci/host/pci-rcar-gen2.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c index ceec147baec3..3a0914163ad0 100644 --- a/drivers/pci/host/pci-rcar-gen2.c +++ b/drivers/pci/host/pci-rcar-gen2.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -160,8 +161,13 @@ static int __init rcar_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) { struct pci_sys_data *sys = dev->bus->sysdata; struct rcar_pci_priv *priv = sys->private_data; + int irq; + + irq = of_irq_parse_and_map_pci(dev, slot, pin); + if (!irq) + irq = priv->irq; - return priv->irq; + return irq; } /* PCI host controller setup */ @@ -249,6 +255,8 @@ static int __init rcar_pci_add_controller(struct rcar_pci_priv *priv) void **private_data; int count; + pci_common_init_dev(priv->dev, &rcar_hw_pci); + if (rcar_hw_pci.nr_controllers < rcar_pci_count) goto add_priv; @@ -322,8 +330,6 @@ static int __init rcar_pci_init(void) int retval; retval = platform_driver_probe(&rcar_pci_driver, rcar_pci_probe); - if (!retval) - pci_common_init(&rcar_hw_pci); /* Private data pointer array is not needed any more */ kfree(rcar_hw_pci.private_data);