From patchwork Tue Oct 30 09:26:56 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Larsson X-Patchwork-Id: 195346 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id F3BC42C00A5 for ; Tue, 30 Oct 2012 20:27:29 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757047Ab2J3J1L (ORCPT ); Tue, 30 Oct 2012 05:27:11 -0400 Received: from vsp-authed02.binero.net ([195.74.38.226]:63821 "HELO vsp-authed-03-02.binero.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1757043Ab2J3J1J (ORCPT ); Tue, 30 Oct 2012 05:27:09 -0400 Received: from smtp01.binero.se (unknown [195.74.38.28]) by vsp-authed-03-02.binero.net (Halon Mail Gateway) with ESMTP; Tue, 30 Oct 2012 10:26:58 +0100 (CET) Received: from localhost.localdomain (static-92-33-28-242.sme.bredbandsbolaget.se [92.33.28.242]) (Authenticated sender: andreas@gaisler.com) by smtp-01-01.atm.binero.net (Postfix) with ESMTPA id CC9D03A1E0; Tue, 30 Oct 2012 10:26:58 +0100 (CET) From: Andreas Larsson To: davem@davemloft.net, sparclinux@vger.kernel.org Cc: software@gaisler.com, sam@ravnborg.org, Greg Kroah-Hartman , linux-kernel@vger.kernel.org Subject: [PATCH v3] sparc: Add sparc support for platform_get_irq() Date: Tue, 30 Oct 2012 10:26:56 +0100 Message-Id: <1351589216-15076-1-git-send-email-andreas@gaisler.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <0b77f2a2dd52bc39c770491689efc752@gaisler.com> References: <0b77f2a2dd52bc39c770491689efc752@gaisler.com> Sender: sparclinux-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: sparclinux@vger.kernel.org This adds sparc support for platform_get_irq that in the normal case use platform_get_resource() to get an irq. This standard approach fails for sparc as there are no resources of type IORESOURCE_IRQ for irqs for sparc. Cross platform drivers can then use this standard platform function and work on sparc instead of having to have a special case for sparc. Signed-off-by: Andreas Larsson --- drivers/base/platform.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/base/platform.c b/drivers/base/platform.c index ddeca14..9c2f828 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -82,9 +82,16 @@ EXPORT_SYMBOL_GPL(platform_get_resource); */ int platform_get_irq(struct platform_device *dev, unsigned int num) { +#ifdef CONFIG_SPARC + /* sparc does not have irqs represented as IORESOURCE_IRQ resources */ + if (!dev || num >= dev->archdata.num_irqs) + return -ENXIO; + return dev->archdata.irqs[num]; +#else struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, num); return r ? r->start : -ENXIO; +#endif } EXPORT_SYMBOL_GPL(platform_get_irq);