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: 4946491 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@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 0E201BEEA5 for ; Mon, 22 Sep 2014 09:32:43 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id E07EB201FA for ; Mon, 22 Sep 2014 09:32:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2FF242020F for ; Mon, 22 Sep 2014 09:32:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753198AbaIVJcf (ORCPT ); Mon, 22 Sep 2014 05:32:35 -0400 Received: from mail-we0-f182.google.com ([74.125.82.182]:57573 "EHLO mail-we0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752300AbaIVJcd (ORCPT ); Mon, 22 Sep 2014 05:32:33 -0400 Received: by mail-we0-f182.google.com with SMTP id u57so682651wes.27 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 Cc: Arnd Bergmann , Rob Herring , Jason Gunthorpe , Benjamin Herrenschmidt , Catalin Marinas , Will Deacon , Russell King , linux-pci , Linus Walleij , Tanmay Inamdar , Grant Likely , Sinan Kaya , Jingoo Han , Kukjin Kim , Suravee Suthikulanit , linux-arch , LKML , Device Tree ML , LAKML , Grant Likely , Sunil Goutham 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) Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,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;