Re: [PATCH] PCI: keystone: Fix build error while only CONFIG_PCI_KEYSTONE is set

From: Bjorn Helgaas
Date: Fri Apr 19 2019 - 14:29:37 EST


On Fri, Apr 19, 2019 at 10:58:55AM +0800, Yue Haibing wrote:
> From: YueHaibing <yuehaibing@xxxxxxxxxx>
>
> During randconfig builds, I occasionally run into an invalid configuration
>
> drivers/pci/controller/dwc/pci-keystone.o: In function `ks_pcie_link_up':
> pci-keystone.c:(.text+0x90): undefined reference to `__dw_pcie_read_dbi'
> pci-keystone.c:(.text+0x90): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__dw_pcie_read_dbi'
> drivers/pci/controller/dwc/pci-keystone.o: In function `ks_pcie_v3_65_scan_bus':
> pci-keystone.c:(.text+0x4f0): undefined reference to `__dw_pcie_write_dbi'
> pci-keystone.c:(.text+0x4f0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__dw_pcie_write_dbi'
>
> while CONFIG_PCI_KEYSTONE is selected but CONFIG_PCIE_DW
> is not set, the building failed like this. This patch
> selects PCIE_DW to fix it.
>
> Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
> Fixes: 5709114f0a97 ("PCI: keystone: Add support for PCIe EP in AM654x Platforms")
> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
> ---
> drivers/pci/controller/dwc/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig
> index b450ad2..641fa0f 100644
> --- a/drivers/pci/controller/dwc/Kconfig
> +++ b/drivers/pci/controller/dwc/Kconfig
> @@ -105,6 +105,7 @@ config PCIE_SPEAR13XX
> config PCI_KEYSTONE
> bool "TI Keystone PCIe controller"
> depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST)
> + select PCIE_DW

What version are you building? In v5.0, PCI_KEYSTONE already selects
PCIE_DW_HOST:

$ git grep -A4 PCI_KEYSTONE v5.0:drivers/pci/controller/dwc/Kconfig | cat
v5.0:drivers/pci/controller/dwc/Kconfig:config PCI_KEYSTONE
v5.0:drivers/pci/controller/dwc/Kconfig- bool "TI Keystone PCIe controller"
v5.0:drivers/pci/controller/dwc/Kconfig- depends on ARCH_KEYSTONE || (ARM && COMPILE_TEST)
v5.0:drivers/pci/controller/dwc/Kconfig- depends on PCI_MSI_IRQ_DOMAIN
v5.0:drivers/pci/controller/dwc/Kconfig- select PCIE_DW_HOST
08:30:42 ~/history (master)$

> help
> Say Y here if you want to enable PCI controller support on Keystone
> SoCs. The PCI controller on Keystone is based on DesignWare hardware
> --
> 2.7.4
>
>