From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751841AbdB0Vss (ORCPT ); Mon, 27 Feb 2017 16:48:48 -0500 Received: from mail-qk0-f170.google.com ([209.85.220.170]:34374 "EHLO mail-qk0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751759AbdB0Vsc (ORCPT ); Mon, 27 Feb 2017 16:48:32 -0500 Subject: Re: [PATCH 13/20] PCI: iproc-platform: update PCI config space remap function To: Lorenzo Pieralisi , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, Bjorn Helgaas , Ray Jui , Jon Mason References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-14-lorenzo.pieralisi@arm.com> From: Ray Jui Message-ID: <84a0b24b-3c88-b750-dd9e-1607bc67a0a8@broadcom.com> Date: Mon, 27 Feb 2017 13:21:39 -0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: <20170227151436.18698-14-lorenzo.pieralisi@arm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Lorenzo, On 2/27/2017 7:14 AM, Lorenzo Pieralisi wrote: > PCI configuration space should be mapped with a memory region type that > generates on the CPU host bus non-posted write transations. Update the > driver to use the devm_pci_remap_cfg* interface to make sure the correct > memory mappings for PCI configuration space are used. > > Signed-off-by: Lorenzo Pieralisi > Cc: Bjorn Helgaas > Cc: Ray Jui > Cc: Jon Mason > --- > drivers/pci/host/pcie-iproc-platform.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/host/pcie-iproc-platform.c b/drivers/pci/host/pcie-iproc-platform.c > index f4909bb..b48d0db 100644 > --- a/drivers/pci/host/pcie-iproc-platform.c > +++ b/drivers/pci/host/pcie-iproc-platform.c > @@ -67,7 +67,8 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) > return ret; > } > > - pcie->base = devm_ioremap(dev, reg.start, resource_size(®)); > + pcie->base = devm_pci_remap_cfgspace(dev, reg.start, > + resource_size(®)); Note these are NOT config space registers; instead, they are host controller registers. iProc PCIe controller access config space registers indirectly through two of the controller registers instead of directly mapped. Thanks, Ray > if (!pcie->base) { > dev_err(dev, "unable to map controller registers\n"); > return -ENOMEM; > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Subject: Re: [PATCH 13/20] PCI: iproc-platform: update PCI config space remap function To: Lorenzo Pieralisi , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-14-lorenzo.pieralisi@arm.com> From: Ray Jui Message-ID: <84a0b24b-3c88-b750-dd9e-1607bc67a0a8@broadcom.com> Date: Mon, 27 Feb 2017 13:21:39 -0800 MIME-Version: 1.0 In-Reply-To: <20170227151436.18698-14-lorenzo.pieralisi@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arch@vger.kernel.org, Bjorn Helgaas , Jon Mason , linux-kernel@vger.kernel.org, Ray Jui Content-Type: text/plain; charset="us-ascii" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+bjorn=helgaas.com@lists.infradead.org List-ID: Hi Lorenzo, On 2/27/2017 7:14 AM, Lorenzo Pieralisi wrote: > PCI configuration space should be mapped with a memory region type that > generates on the CPU host bus non-posted write transations. Update the > driver to use the devm_pci_remap_cfg* interface to make sure the correct > memory mappings for PCI configuration space are used. > > Signed-off-by: Lorenzo Pieralisi > Cc: Bjorn Helgaas > Cc: Ray Jui > Cc: Jon Mason > --- > drivers/pci/host/pcie-iproc-platform.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/host/pcie-iproc-platform.c b/drivers/pci/host/pcie-iproc-platform.c > index f4909bb..b48d0db 100644 > --- a/drivers/pci/host/pcie-iproc-platform.c > +++ b/drivers/pci/host/pcie-iproc-platform.c > @@ -67,7 +67,8 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) > return ret; > } > > - pcie->base = devm_ioremap(dev, reg.start, resource_size(®)); > + pcie->base = devm_pci_remap_cfgspace(dev, reg.start, > + resource_size(®)); Note these are NOT config space registers; instead, they are host controller registers. iProc PCIe controller access config space registers indirectly through two of the controller registers instead of directly mapped. Thanks, Ray > if (!pcie->base) { > dev_err(dev, "unable to map controller registers\n"); > return -ENOMEM; > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ray Jui Subject: Re: [PATCH 13/20] PCI: iproc-platform: update PCI config space remap function Date: Mon, 27 Feb 2017 13:21:39 -0800 Message-ID: <84a0b24b-3c88-b750-dd9e-1607bc67a0a8@broadcom.com> References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-14-lorenzo.pieralisi@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20170227151436.18698-14-lorenzo.pieralisi@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Lorenzo Pieralisi , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org, Bjorn Helgaas , Jon Mason , linux-kernel@vger.kernel.org, Ray Jui List-Id: linux-arch.vger.kernel.org Hi Lorenzo, On 2/27/2017 7:14 AM, Lorenzo Pieralisi wrote: > PCI configuration space should be mapped with a memory region type that > generates on the CPU host bus non-posted write transations. Update the > driver to use the devm_pci_remap_cfg* interface to make sure the correct > memory mappings for PCI configuration space are used. > > Signed-off-by: Lorenzo Pieralisi > Cc: Bjorn Helgaas > Cc: Ray Jui > Cc: Jon Mason > --- > drivers/pci/host/pcie-iproc-platform.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/host/pcie-iproc-platform.c b/drivers/pci/host/pcie-iproc-platform.c > index f4909bb..b48d0db 100644 > --- a/drivers/pci/host/pcie-iproc-platform.c > +++ b/drivers/pci/host/pcie-iproc-platform.c > @@ -67,7 +67,8 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) > return ret; > } > > - pcie->base = devm_ioremap(dev, reg.start, resource_size(®)); > + pcie->base = devm_pci_remap_cfgspace(dev, reg.start, > + resource_size(®)); Note these are NOT config space registers; instead, they are host controller registers. iProc PCIe controller access config space registers indirectly through two of the controller registers instead of directly mapped. Thanks, Ray > if (!pcie->base) { > dev_err(dev, "unable to map controller registers\n"); > return -ENOMEM; > From mboxrd@z Thu Jan 1 00:00:00 1970 From: ray.jui@broadcom.com (Ray Jui) Date: Mon, 27 Feb 2017 13:21:39 -0800 Subject: [PATCH 13/20] PCI: iproc-platform: update PCI config space remap function In-Reply-To: <20170227151436.18698-14-lorenzo.pieralisi@arm.com> References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-14-lorenzo.pieralisi@arm.com> Message-ID: <84a0b24b-3c88-b750-dd9e-1607bc67a0a8@broadcom.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Lorenzo, On 2/27/2017 7:14 AM, Lorenzo Pieralisi wrote: > PCI configuration space should be mapped with a memory region type that > generates on the CPU host bus non-posted write transations. Update the > driver to use the devm_pci_remap_cfg* interface to make sure the correct > memory mappings for PCI configuration space are used. > > Signed-off-by: Lorenzo Pieralisi > Cc: Bjorn Helgaas > Cc: Ray Jui > Cc: Jon Mason > --- > drivers/pci/host/pcie-iproc-platform.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/host/pcie-iproc-platform.c b/drivers/pci/host/pcie-iproc-platform.c > index f4909bb..b48d0db 100644 > --- a/drivers/pci/host/pcie-iproc-platform.c > +++ b/drivers/pci/host/pcie-iproc-platform.c > @@ -67,7 +67,8 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) > return ret; > } > > - pcie->base = devm_ioremap(dev, reg.start, resource_size(®)); > + pcie->base = devm_pci_remap_cfgspace(dev, reg.start, > + resource_size(®)); Note these are NOT config space registers; instead, they are host controller registers. iProc PCIe controller access config space registers indirectly through two of the controller registers instead of directly mapped. Thanks, Ray > if (!pcie->base) { > dev_err(dev, "unable to map controller registers\n"); > return -ENOMEM; >