Re: [PATCH 0/5] PCI: Add support to the Cadence PCIe controller

From: Bjorn Helgaas
Date: Thu Nov 30 2017 - 18:05:25 EST


On Thu, Nov 30, 2017 at 09:05:12PM +0100, Cyrille Pitchen wrote:
> Le 30/11/2017 à 19:45, Cyrille Pitchen a écrit :
> > Le 30/11/2017 à 19:18, Lorenzo Pieralisi a écrit :
> >> On Thu, Nov 30, 2017 at 12:43:20PM +0530, Kishon Vijay Abraham I wrote:

> >>> The reason to patch drivers/Makefile should be because
> >>> pcie-cadence-ep has to be compiled even when CONFIG_PCI is not
> >>> enabled. CONFIG_PCI enables host specific features and ENDPOINT
> >>> shouldn't depend on CONFIG_PCI.

> I know it's far from perfect but what do you think or something like that:
>
> ---8<---------------------------------------------------------------------------
> diff --git a/drivers/Makefile b/drivers/Makefile
> index 27bdd98784d9..9757199b9a65 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -16,11 +16,7 @@ obj-$(CONFIG_PINCTRL) += pinctrl/
> obj-$(CONFIG_GPIOLIB) += gpio/
> obj-y += pwm/
>
> -obj-$(CONFIG_PCI) += pci/
> -obj-$(CONFIG_PCI_ENDPOINT) += pci/endpoint/
> -obj-$(CONFIG_PCI_CADENCE) += pci/cadence/
> -# PCI dwc controller drivers
> -obj-y += pci/dwc/
> +obj-y += pci/
>
> obj-$(CONFIG_PARISC) += parisc/
> obj-$(CONFIG_RAPIDIO) += rapidio/
> diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile
> index 3d5e047f0a32..4e57fe4499ce 100644
> --- a/drivers/pci/Makefile
> +++ b/drivers/pci/Makefile
> @@ -3,6 +3,7 @@
> # Makefile for the PCI bus specific drivers.
> #
>
> +ifdef CONFIG_PCI
> obj-y += access.o bus.o probe.o host-bridge.o remove.o pci.o \
> pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \
> irq.o vpd.o setup-bus.o vc.o mmap.o setup-irq.o
> @@ -54,3 +55,9 @@ ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG
> # PCI host controller drivers
> obj-y += host/
> obj-y += switch/
> +endif
> +
> +obj-$(CONFIG_PCI_ENDPOINT) += endpoint/
> +obj-$(CONFIG_PCI_CADENCE) += cadence/
> +# PCI dwc controller drivers
> +obj-y += dwc/
> ---8<---------------------------------------------------------------------------
>
> I admit it doesn't solve the ordering issue but at least it cleans some mess
> in drivers/Makefile.

I like this a lot. I think the only things that would actually
require the ifdef are the generic symbol things (CONFIG_PROC_FS,
CONFIG_SYSFS, CONFIG_OF), so we could do this for most of it:

obj-$(CONFIG_PCI) += access.o bus.o probe.o ...
...
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
obj-$(CONFIG_PCIEPORTBUS) += pcie/
obj-$(CONFIG_PCI) += host/
obj-$(CONFIG_PCI) += switch/

With possibly a few Kconfig dependency tweaks.