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.