RE: [PATCHv9 02/12] PCI: mobiveil: Move the host initialization into a routine
From: "Z.q. Hou" <zhiqiang.hou@nxp.com>
Date: 2020-02-06 11:14:30
Also in:
linux-devicetree, linux-pci, lkml
Hi Andrew, Thanks a lot for your comments!
-----Original Message----- From: Andrew Murray <redacted> Sent: 2020年1月13日 18:19 To: Z.q. Hou <zhiqiang.hou@nxp.com> Cc: linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; bhelgaas@google.com; robh+dt@kernel.org; arnd@arndb.de; mark.rutland@arm.com; l.subrahmanya@mobiveil.co.in; shawnguo@kernel.org; m.karthikeyan@mobiveil.co.in; Leo Li [off-list ref]; lorenzo.pieralisi@arm.com; catalin.marinas@arm.com; will.deacon@arm.com; Mingkai Hu [off-list ref]; M.h. Lian [off-list ref]; Xiaowei Bao [off-list ref] Subject: Re: [PATCHv9 02/12] PCI: mobiveil: Move the host initialization into a routine On Wed, Nov 20, 2019 at 03:45:30AM +0000, Z.q. Hou wrote:quoted
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> Move the host initialization related operations into a new routine to make it can be reused by other incoming platform'ss/to make/such that/ 'function' is probably a better word than 'routine'.
Will change in v10.
quoted
PCIe host driver, in which the Mobiveil GPEX is integrated. Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> --- V9: - New patch splited from the #1 of V8 patches to make it easy to review. drivers/pci/controller/pcie-mobiveil.c | 38 +++++++++++++++----------- 1 file changed, 22 insertions(+), 16 deletions(-)diff --git a/drivers/pci/controller/pcie-mobiveil.cb/drivers/pci/controller/pcie-mobiveil.c index 5fd26e376af2..97f682ca7c7a 100644--- a/drivers/pci/controller/pcie-mobiveil.c +++ b/drivers/pci/controller/pcie-mobiveil.c@@ -873,27 +873,15 @@ static int mobiveil_pcie_init_irq_domain(structmobiveil_pcie *pcie)quoted
return 0; } -static int mobiveil_pcie_probe(struct platform_device *pdev) +int mobiveil_pcie_host_probe(struct mobiveil_pcie *pcie)This is no longer static - but do you need to add a header file somewhere?
The function mobiveil_pcie_probe() is still static below, the mobiveil_pcie_host_probe() is new introduced one, it is now only used in this .c file, so I'll change it to a static function in v10.
quoted
{ - struct mobiveil_pcie *pcie; + struct root_port *rp = &pcie->rp; + struct pci_host_bridge *bridge = rp->bridge; + struct device *dev = &pcie->pdev->dev; struct pci_bus *bus; struct pci_bus *child; - struct pci_host_bridge *bridge; - struct device *dev = &pdev->dev; - struct root_port *rp; int ret; - /* allocate the PCIe port */ - bridge = devm_pci_alloc_host_bridge(dev, sizeof(*pcie)); - if (!bridge) - return -ENOMEM; - - pcie = pci_host_bridge_priv(bridge); - rp = &pcie->rp; - rp->bridge = bridge; - - pcie->pdev = pdev; - ret = mobiveil_pcie_parse_dt(pcie); if (ret) { dev_err(dev, "Parsing DT failed, ret: %x\n", ret); @@ -956,6 +944,24 @@ static int mobiveil_pcie_probe(struct platform_device *pdev) return 0; } +static int mobiveil_pcie_probe(struct platform_device *pdev) { + struct mobiveil_pcie *pcie; + struct pci_host_bridge *bridge; + struct device *dev = &pdev->dev; + + bridge = devm_pci_alloc_host_bridge(dev, sizeof(*pcie));You've lost the comment that was above this.
Will add it back. Thanks, Zhiqiang
Thanks, Andrew Murrayquoted
+ if (!bridge) + return -ENOMEM; + + pcie = pci_host_bridge_priv(bridge); + pcie->rp.bridge = bridge; + + pcie->pdev = pdev; + + return mobiveil_pcie_host_probe(pcie); } + static const struct of_device_id mobiveil_pcie_of_match[] = { {.compatible = "mbvl,gpex40-pcie",}, {}, -- 2.17.1
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel