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

From: Bjorn Helgaas
Date: Mon Apr 22 2019 - 09:26:23 EST


On Mon, Apr 22, 2019 at 01:19:53PM +0530, Kishon Vijay Abraham I wrote:
> Hi Bjorn,
> ...

> Sometime back Niklas had fixed this for DRA7xx in
>
> commit b052835c63857e13d9ada3ebc57a8f9e1d124f3a
> Author: Niklas Cassel <niklas.cassel@xxxxxxxx>
> Date: Wed Dec 20 00:29:28 2017 +0100
>
> PCI: dwc: dra7xx: Refactor Kconfig and Makefile handling for host/ep mode
>
> Refactor the Kconfig and Makefile handling for host/ep mode, since
> the previous handling was a bit unorthodox and would have been a bit
> bloated once more DWC based controllers added support for ep mode.
>
> Signed-off-by: Niklas Cassel <niklas.cassel@xxxxxxxx>
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
> Acked-by: Kishon Vijay Abraham I <kishon@xxxxxx>
>
> Something similar is applicable for Keystone too as you mentioned without
> selecting PCI_KEYSTONE_HOST or PCI_KEYSTONE_EP, compiling pci-keystone.c
> doesn't make sense.
>
> Please see if below looks okay to you. This can be merged with "PCI:
> keystone:Add support for PCIe EP in AM654x Platforms"). Let me know if I have
> to send it separately with Fixes tag.

Lorenzo merged that commit, so I assume he'll take care of this.

> 8<---------------------------------------------------------
> From 8fba36048112cf72c49996fc47fd808534bf9689 Mon Sep 17 00:00:00 2001
> From: Kishon Vijay Abraham I <kishon@xxxxxx>
> Date: Mon, 22 Apr 2019 11:42:32 +0530
> Subject: [PATCH] PCI: keystone: Refactor Kconfig for RC/EP mode
>
> Do not allow PCI_KEYSTONE to be visible to user and let user visible
> CONFIG symbols PCI_KEYSTONE_HOST and PCI_KEYSTONE_EP select
> PCI_KEYSTONE. This will let pci-keystone.c to be compiled only when
> either PCI_KEYSTONE_HOST or PCI_KEYSTONE_EP is selected.
>
> Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
> ---
> drivers/pci/controller/dwc/Kconfig | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/Kconfig
> b/drivers/pci/controller/dwc/Kconfig
> index b450ad2823a5..90618233d15b 100644
> --- a/drivers/pci/controller/dwc/Kconfig
> +++ b/drivers/pci/controller/dwc/Kconfig
> @@ -103,34 +103,32 @@ config PCIE_SPEAR13XX
> Say Y here if you want PCIe support on SPEAr13XX SoCs.
>
> config PCI_KEYSTONE
> - bool "TI Keystone PCIe controller"
> - depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST)
> - 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
> - and therefore the driver re-uses the DesignWare core functions to
> - implement the driver.
> -
> -if PCI_KEYSTONE
> + bool
>
> config PCI_KEYSTONE_HOST
> bool "PCI Keystone Host Mode"
> + depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST)
> depends on PCI_MSI_IRQ_DOMAIN
> select PCIE_DW_HOST
> + select PCI_KEYSTONE
> default y
> help
> Enables support for the PCIe controller in the Keystone SoC to work in
> - host mode.
> + host mode. The PCI controller on Keystone is based on DesignWare hardware
> + and therefore the driver re-uses the DesignWare core functions to
> + implement the driver.
>
> config PCI_KEYSTONE_EP
> bool "PCI Keystone Endpoint Mode"
> + depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST)
> depends on PCI_ENDPOINT
> select PCIE_DW_EP
> + select PCI_KEYSTONE
> help
> Enables support for the PCIe controller in the Keystone SoC to work in
> - endpoint mode.
> -
> -endif
> + endpoint mode. The PCI controller on Keystone is based on DesignWare hardware
> + and therefore the driver re-uses the DesignWare core functions to
> + implement the driver.
>
> config PCI_LAYERSCAPE
> bool "Freescale Layerscape PCIe controller"
> --
> 2.17.1