From patchwork Mon Sep 22 09:32:28 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Richter X-Patchwork-Id: 4946511 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 991DCBEEA5 for ; Mon, 22 Sep 2014 09:35:03 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 66EF22020F for ; Mon, 22 Sep 2014 09:35:02 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (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 16E60201FA for ; Mon, 22 Sep 2014 09:35:01 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1XVzzN-0006dK-DN; Mon, 22 Sep 2014 09:32:57 +0000 Received: from mail-wg0-x234.google.com ([2a00:1450:400c:c00::234]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XVzzK-0006TE-JI for linux-arm-kernel@lists.infradead.org; Mon, 22 Sep 2014 09:32:55 +0000 Received: by mail-wg0-f52.google.com with SMTP id n12so624996wgh.23 for ; Mon, 22 Sep 2014 02:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=2lOjQ6zwAuWXE66Wbt06ZV4FiBqHlsjPvYyYOyZoCsI=; b=dgF06MvINJO6n9WMncmAps/o/mRa2rCZpX0seMY66SW7a0GqTIs+baowsyg8HspNii ZL7/VOCfB0TMAxLoaTHaaTpAyx4fTuWY02NnwW6fLXfgxjNGxZGJ8Q7aZCxORibEVn1t IF6JQmB8B3lHiRv4HUN2uh7s6AoRgX41IwHnUVZfCwwL4R2ct6dgWra92k+MZEQJ661n 5bsNpOC9rdnGtqkOGGrQRDKWgwGafYFlw3kUCh3hukjO89gAJMzgz7/XTipIO+cOnfxN xUS9Y+Bk+URaSJSUUrmmTpBxmYoKaESzyyqrfEEsL5/aaWlkWA3UQcZg+4ry1GnUDnGs VB1Q== X-Received: by 10.194.80.2 with SMTP id n2mr19499570wjx.29.1411378351796; Mon, 22 Sep 2014 02:32:31 -0700 (PDT) Received: from rric.localhost (g224199192.adsl.alicedsl.de. [92.224.199.192]) by mx.google.com with ESMTPSA id v9sm11669471wjy.14.2014.09.22.02.32.30 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Sep 2014 02:32:31 -0700 (PDT) Date: Mon, 22 Sep 2014 11:32:28 +0200 From: Robert Richter To: Liviu Dudau , Bjorn Helgaas Subject: Re: [PATCH v11 08/10] OF: PCI: Add support for parsing PCI host bridge resources from DT Message-ID: <20140922093228.GA20256@rric.localhost> References: <1411003825-21521-1-git-send-email-Liviu.Dudau@arm.com> <1411003825-21521-9-git-send-email-Liviu.Dudau@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1411003825-21521-9-git-send-email-Liviu.Dudau@arm.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140922_023254_803899_35401FDB X-CRM114-Status: GOOD ( 18.04 ) X-Spam-Score: -0.7 (/) Cc: linux-arch , Grant Likely , Kukjin Kim , Russell King , Arnd Bergmann , Device Tree ML , linux-pci , Benjamin Herrenschmidt , Linus Walleij , Jingoo Han , Will Deacon , LKML , Jason Gunthorpe , Rob Herring , Tanmay Inamdar , Suravee Suthikulanit , Catalin Marinas , Grant Likely , Sunil Goutham , Sinan Kaya , LAKML X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable 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 On 18.09.14 02:30:23, Liviu Dudau wrote: > +int of_pci_get_host_bridge_resources(struct device_node *dev, > + unsigned char busno, unsigned char bus_max, > + struct list_head *resources, resource_size_t *io_base) > +{ > + struct resource *res; > + struct resource *bus_range; > + struct of_pci_range range; > + struct of_pci_range_parser parser; > + char range_type[4]; > + int err; > + > + if (!io_base) > + return -EINVAL; > + *io_base = OF_BAD_ADDR; This breaks for mem-mapped pci host controllers. The patch below fixes this. This series was tested with the fix on top for Cavium Thunder. Tested-by: Robert Richter -Robert From e798af4fc2f664d1aff7e863489b8298f90e716e Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Mon, 22 Sep 2014 10:46:01 +0200 Subject: [PATCH] OF: PCI: Fix creation of mem-mapped pci host bridges The pci host bridge was not created if io_base was not set when calling of_pci_get_host_bridge_resources(). This is esp. the case for mem-mapped io (IORESOURCE_MEM). This patch fixes this. Function parameter io_base is optional now. Signed-off-by: Robert Richter --- drivers/of/of_pci.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c index ffdb45ed8682..1f0e7c2505ee 100644 --- a/drivers/of/of_pci.c +++ b/drivers/of/of_pci.c @@ -182,9 +182,8 @@ int of_pci_get_host_bridge_resources(struct device_node *dev, char range_type[4]; int err; - if (!io_base) - return -EINVAL; - *io_base = OF_BAD_ADDR; + if (io_base) + *io_base = OF_BAD_ADDR; bus_range = kzalloc(sizeof(*bus_range), GFP_KERNEL); if (!bus_range) @@ -242,7 +241,7 @@ int of_pci_get_host_bridge_resources(struct device_node *dev, goto parse_failed; } - if (resource_type(res) == IORESOURCE_IO) { + if (io_base && resource_type(res) == IORESOURCE_IO) { if (*io_base != OF_BAD_ADDR) pr_warn("More than one I/O resource converted. CPU offset for old range lost!\n"); *io_base = range.cpu_addr;