Re: [PATCH] pci: dwc: hisi needs PCI_HOST_COMMON

From: Zhou Wang
Date: Wed Mar 22 2017 - 08:25:00 EST


On 2017/3/22 16:00, Arnd Bergmann wrote:
> On Mar 22, 2017 04:27, "Zhou Wang" <wangzhou1@xxxxxxxxxxxxx <mailto:wangzhou1@xxxxxxxxxxxxx>> wrote:
>
> On 2017/3/21 23:48, Jingoo Han wrote:
> > (+cc: Joao Pinto, Zhou Wang, Gabriele Paoloni)
> >
> > On Tuesday, March 21, 2017 10:32 AM, Arnd Bergmann wrote:
> >>
> >> Without PCI_HOST_COMMON support enabled, we get a link error:
> >>
> >> drivers/pci/dwc/built-in.o: In function `hisi_pcie_map_bus':
> >> pcie-hisi.c:(.text+0x8860): undefined reference to `pci_ecam_map_bus'
> >> drivers/pci/dwc/built-in.o: In function `hisi_pcie_almost_ecam_probe':
> >> pcie-hisi.c:(.text+0x88b4): undefined reference to `pci_host_common_probe'
> >>
> >> This adds an explicit 'select', as the other users have.
>
> Hi Arnd,
>
> I wonder if we should select PCI_HOST_GENERIC here, like:
>
> diff --git a/drivers/pci/dwc/Kconfig b/drivers/pci/dwc/Kconfig
> index dfb8a69..b25dce4 100644
> --- a/drivers/pci/dwc/Kconfig
> +++ b/drivers/pci/dwc/Kconfig
> @@ -89,6 +89,7 @@ config PCI_HISI
> depends on PCI_MSI_IRQ_DOMAIN
> select PCIEPORTBUS
> select PCIE_DW_HOST
> + select PCI_HOST_GENERIC
> help
> Say Y here if you want PCIe controller support on HiSilicon
> Hip05 and Hip06 SoCs
>
>
> I don't know how that would be better. PCI_HOST_GENERIC is
> a standalone driver for machines that don't need any special
> handling (e.g. SBSA or KVM), while PCI_HOST_COMMON is
> the infrastructure used by both PCI_HISI and PCI_HOST_GENERIC.
>
> Selecting PCI_HOST_GENERIC would also work as we implicitly
> get PCI_HOST_COMMON, but it would not be clear from reading
> the Kconfig file what the purpose of doing that is.

Yes, you are right. I just disabled PCI_HOST_GENERIC and enabled
PCI_HOST_COMMON to test PCI hosts of HiSilicon and Thunder, a build error
happened.

We can fix this by your PCI: generic: stop hiding pci_host_common_probe declaration.
And select PCI_HOST_COMMON here.

Thanks for pointing this!
Zhou.

>
> Arnd