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 > >> > >> 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 > >> Signed-off-by: Thierry Reding > >> --- > >> 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. 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. Thierry