[PATCH] PCI: hisi: add PCIe driver support for HiSilicon STB SoCs
Bjorn Helgaas
helgaas at kernel.org
Fri Oct 20 15:52:48 PDT 2017
On Sun, Oct 15, 2017 at 01:06:11PM +0800, Shawn Guo wrote:
> From: Jianguo Sun <sunjianguo1 at huawei.com>
>
> Add PCIe controller driver for HiSilicon STB SoCs,
> the controller is based on the DesignWare's PCIe core.
s/DesignWare's/DesignWare/
> Signed-off-by: Jianguo Sun <sunjianguo1 at huawei.com>
> Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
> ---
> .../bindings/pci/hisilicon-histb-pcie.txt | 66 +++
> drivers/pci/dwc/Kconfig | 10 +
> drivers/pci/dwc/Makefile | 1 +
> drivers/pci/dwc/pcie-histb.c | 469 +++++++++++++++++++++
> 4 files changed, 546 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt
> create mode 100644 drivers/pci/dwc/pcie-histb.c
Looks beautiful overall!
This needs a MAINTAINERS update so "./scripts/get_maintainer.pl -f" prints
something useful.
A few minor nits below that I would fix myself, but since you need to
supply the MAINTAINERS update anyway, I'll let you do it :)
> diff --git a/Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt b/Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt
> new file mode 100644
> index 000000000000..9474ad9bc36c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt
> @@ -0,0 +1,66 @@
> +HiSilicon STB PCIe host bridge DT description
> +
> +HiSilicon STB PCIe host controller is based on Designware PCI core.
> +It shares common functions with PCIe Designware core driver and inherits
> +common properties defined in
> +Documentation/devicetree/bindings/pci/designware-pcie.txt.
s/Designware/DesignWare/ in English text above (not in filenames,
function names, etc).
s/PCI/PCIe/
> +static u32 histb_pcie_read_dbi(struct dw_pcie *pci, void __iomem *base,
> + u32 reg, size_t size)
These should be lined up exactly ("u32" should line up with "struct"
above it). They are currently off by one. Similarly for
histb_pcie_write_dbi(), histb_pcie_rd_own_conf(),
histb_pcie_wr_own_conf().
> + hipcie->aux_clk = devm_clk_get(dev, "aux");
> + if (IS_ERR(hipcie->aux_clk)) {
> + dev_err(dev, "Failed to get pcie aux clk\n");
s/pcie/PCIe/ in this message and the ones below. Also in
histb_pcie_host_enable() comment.
> + return PTR_ERR(hipcie->aux_clk);
> + }
> +
> + hipcie->pipe_clk = devm_clk_get(dev, "pipe");
> + if (IS_ERR(hipcie->pipe_clk)) {
> + dev_err(dev, "Failed to get pcie pipe clk\n");
> + return PTR_ERR(hipcie->pipe_clk);
> + if (IS_ENABLED(CONFIG_PCI_MSI)) {
> + pp->msi_irq = platform_get_irq_byname(pdev, "msi");
> + if (pp->msi_irq < 0) {
> + dev_err(dev, "Failed to get msi irq\n");
> + return pp->msi_irq;
> + }
> +
> + ret = devm_request_irq(dev, pp->msi_irq,
> + histb_pcie_msi_irq_handler,
> + IRQF_SHARED, "histb-pcie-msi", pp);
> + if (ret) {
> + dev_err(dev, "cannot request msi irq\n");
s/msi irq/MSI IRQ/ in the error message. Also a few lines above.
More information about the linux-arm-kernel
mailing list