On Fri, Jun 15, 2018 at 10:58:19AM -0700, Scott Branden wrote: > > > On 18-06-15 10:55 AM, Scott Branden wrote: > >Hi Lorenzo, > > > > > >On 18-06-15 05:58 AM, Lorenzo Pieralisi wrote: > >>On Wed, Jun 13, 2018 at 11:11:46AM -0700, Guenter Roeck wrote: > >>>On Wed, Jun 13, 2018 at 11:09:35AM +0100, Lorenzo Pieralisi wrote: > >>>>[+Jan, Ley Foon, RMK] > >>>> > >>>>On Tue, Jun 12, 2018 at 10:02:29AM -0700, Guenter Roeck wrote: > >>>>>On Thu, Apr 05, 2018 at 02:31:54PM -0500, Rob Herring wrote: > >>>>>>Add COMPILE_TEST on driver config options with it. Some ARM drivers > >>>>>>still have arch dependencies, so we have to keep those > >>>>>>dependent on ARM. > >>>>>> > >>>>>>Cc: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> > >>>>>>Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > >>>>>>Cc: linux-pci@xxxxxxxxxxxxxxx > >>>>>>Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > >>>>>This patch has the undesirable side effect that it selects > >>>>>PCI_DOMAINS for > >>>>>sparc32:allmodconfig, which in turn results in > >>>>> > >>>>>drivers/ata/pata_ali.c: In function 'ali_init_chipset': > >>>>>drivers/ata/pata_ali.c:469:38: error: > >>>>> implicit declaration of function 'pci_domain_nr'; did > >>>>>you mean 'pci_iomap_wc'? > >>>>> > >>>>>Unfortunately, 37bd62d224c82 ("PCI: Enable PCI_DOMAINS > >>>>>along with generic > >>>>>PCI host controller") has pretty much the same result. No > >>>>>idea how to fix > >>>>>the problem, so I won't even try. > >>>>Sorry about that. > >>>> > >>>>One option would consist in removing all PCI_DOMAINS selection from > >>>>drivers/pci/controller/Kconfig and delegate it to arches even though > >>>>this would force PCI_DOMAINS selection on all ARM platforms (it is > >>>>already selected for ARCH_MULTIPLATFORM). > >>>> > >>>>Or we add back arch dependency to the relevant host bridges. > >>>> > >>>>Everything else I have in mind seems overkill to me given that this > >>>>patch was added to improve test coverage (we could add a default > >>>>pci_domain_nr() stub - weak or #define - that returns 0 in case arches > >>>>do not provide an implementation but do we really want to do that ?). > >>>> > >>>>Thoughts appreciated. > >>>> > >>> From the definition of PCI_DOMAINS, I suspect the original > >>>idea was that > >>>drivers should depend on it, not select it. Especially auto-selecting > >>>it with PCI_HOST_GENERIC seems like a bad idea to me. However, that is > >>>just me. I'll leave it up to Bjorn to decide what if anything he wants > >>>to do about it. > >>Here is a patch that should reinstate the previous behaviour but > >>it will make PCI_DOMAINS a visible option on ARM 32-bit systems; whether > >>that's acceptable that's the question I need to answer, it should > >>honour old configs and it does not force PCI_DOMAINS selection on > >>non-DT arch/arm PCI host controllers (that do not need PCI_DOMAINS > >>anyway so I suspect that enabling it on all ARM 32-bit platforms > >>should not break anything but I preferred to be cautious). > >I think this change will also require a patch enabling > >CONFIG_PCI_DOMAINS in multi_v7_defconfig and iproc_defconfig at > >the very least? > as well as arm64/configs/defconfig? Rather than having to change > all the defconfigs perhaps can to make default y in Kconfig for > architectures that should have it as such? I can't do that on ARM, this would force PCI_DOMAINS on platforms that never relied on it and that can trigger regressions. It is unfortunate but the safest option consists in selecting PCI_DOMAINS in the respective ARCH_* options I think. Lorenzo