On 09/06/2021 19:00, Thierry Reding wrote: > On Wed, Jun 09, 2021 at 03:19:12PM +0200, Krzysztof Kozlowski wrote: >> On 09/06/2021 13:58, Dmitry Osipenko wrote: >>> 09.06.2021 14:28, Thierry Reding пишет: >>>> From: Thierry Reding <treding@xxxxxxxxxx> >>>> >>>> When enabling the COMPILE_TEST Kconfig option, the Tegra memory >>>> controller can be built without ARCH_TEGRA being selected. However, the >>>> driver implicitly depends on some symbols pulled in via ARCH_TEGRA, >>>> which causes the build to break. >>>> >>>> Add explicit dependencies for OF_EARLY_FLATTREE and OF_RESERVED_MEM to >>>> the Tegra MC Kconfig option to make sure they are selected even if >>>> ARCH_TEGRA is not. >>>> >>>> Reported-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> >>>> Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> >>>> --- >>>> drivers/memory/tegra/Kconfig | 2 ++ >>>> 1 file changed, 2 insertions(+) >>>> >>>> diff --git a/drivers/memory/tegra/Kconfig b/drivers/memory/tegra/Kconfig >>>> index f9bae36c03a3..ecfb071fc4f4 100644 >>>> --- a/drivers/memory/tegra/Kconfig >>>> +++ b/drivers/memory/tegra/Kconfig >>>> @@ -48,6 +48,8 @@ config TEGRA124_EMC >>>> config TEGRA210_EMC_TABLE >>>> bool >>>> depends on ARCH_TEGRA_210_SOC || COMPILE_TEST >>>> + select OF_EARLY_FLATTREE >>>> + select OF_RESERVED_MEM >>>> >>>> config TEGRA210_EMC >>>> tristate "NVIDIA Tegra210 External Memory Controller driver" >>>> >>> >>> Will this work if CONFIG_OF is disabled? >> >> Yeah, good question. That's why I propose "depends on". No issues with >> unmet or circular dependencies. > > I couldn't find a way to make this work with "depends on" because > OF_RESERVED_MEM is not user-visible and the only way to get it enabled > is if something also selects OF_EARLY_FLATTREE, which is only ever done > at the architecture Kconfig level (and for OF unit testing). > > So switching this to a "depends on" causes the TEGRA210_EMC never to get > enabled. Right. > > However, with OF disabled, the above causes issues because it can lead > to unmet direct dependencies. That, in turn, can be fixed by appending > && OF to the COMPILE_TEST branch, which seems like a good enough > compromise. > > Here's what I have on top of the above patch and that seems to do the > trick. > > --- >8 --- > diff --git a/drivers/memory/tegra/Kconfig b/drivers/memory/tegra/Kconfig > index ecfb071fc4f4..1c553895160c 100644 > --- a/drivers/memory/tegra/Kconfig > +++ b/drivers/memory/tegra/Kconfig > @@ -47,13 +47,13 @@ config TEGRA124_EMC > > config TEGRA210_EMC_TABLE > bool > - depends on ARCH_TEGRA_210_SOC || COMPILE_TEST > + depends on ARCH_TEGRA_210_SOC || (COMPILE_TEST && OF) > select OF_EARLY_FLATTREE > select OF_RESERVED_MEM > > config TEGRA210_EMC > tristate "NVIDIA Tegra210 External Memory Controller driver" > - depends on ARCH_TEGRA_210_SOC || COMPILE_TEST > + depends on ARCH_TEGRA_210_SOC || (COMPILE_TEST && OF) > select TEGRA210_EMC_TABLE > help > This driver is for the External Memory Controller (EMC) found on > --- >8 --- > > So in a nutshell this will only get compile-tested if OF is enabled, but > then it will select OF_RESERVED_MEM and OF_EARLY_FLATTREE to get the > required symbols. Could be also separate "depends on OF", even though it is included in ARCH_TEGRA_XXX, but I am fine with this here. Best regards, Krzysztof