Re: [PATCH 2/2] PCI: Drop controller CONFIG_OF dependencies

From: Pali Rohár
Date: Tue Nov 15 2022 - 14:32:12 EST


On Tuesday 15 November 2022 12:07:34 Bjorn Helgaas wrote:
> On Tue, Nov 15, 2022 at 04:56:10PM +0100, Geert Uytterhoeven wrote:
> > On Tue, Oct 25, 2022 at 9:16 PM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote:
> > > From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> > >
> > > Many drivers depend on OF interfaces, so they won't be functional if
> > > CONFIG_OF is not set. But OF provides stub functions in that case, so drop
> > > the OF dependencies so we can at least compile-test the drivers.
>
> > > --- a/drivers/pci/controller/Kconfig
> > > +++ b/drivers/pci/controller/Kconfig
> > > @@ -8,7 +8,6 @@ config PCI_MVEBU
> > > depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
> > > depends on MVEBU_MBUS
> > > depends on ARM
> > > - depends on OF
> >
> > This is exactly why we have the COMPILE_TEST symbol.
> > There is no point in bothering all users who configure kernels with
> > questions about drivers that won't function anyway due to missing
> > dependencies, unless the user explicitly wants to do compile-testing.
> >
> > So all of these should become:
> >
> > depends on OF || COMPILE_TEST
>
> Oh, yes, thanks for pointing this out, I totally blew it here. I
> dropped this while we figure it out.

I agree too, it really makes sense to not provide pci-mvebu driver to
end users without OF - it would not work.

Anyway, it is needed to declare "depends on ARM" for pci-mvebu?
Both supported architectures (mvebu and dove) are ARM.

> Do you have a preference between this:
>
> depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
> depends on OF || COMPILE_TEST
>
> and this:
>
> depends on ((ARCH_MVEBU || ARCH_DOVE) && OF) || COMPILE_TEST
>
> The latter seems more common and doesn't repeat "COMPILE_TEST", but I
> can see advantages to the former.
>
> Bjorn

First one looks to be more readable as it does not contain parenthesis.

And if one day there would be support also for other Marvell SoCs
currently missing in pci-mvebu.c then diff for new ARCH_ in Kconfig
would be smaller.