All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Dmitry Osipenko <digetx@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Jon Hunter <jonathanh@nvidia.com>,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] memory: tegra: Add missing dependencies
Date: Thu, 10 Jun 2021 08:42:16 +0200	[thread overview]
Message-ID: <97fc44f9-30d5-cbcf-431a-fd0c4c7517b7@canonical.com> (raw)
In-Reply-To: <YMDzkyjaMhoJjMzL@orome.fritz.box>

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@nvidia.com>
>>>>
>>>> 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@canonical.com>
>>>> Signed-off-by: Thierry Reding <treding@nvidia.com>
>>>> ---
>>>>  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

  reply	other threads:[~2021-06-10  6:42 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-09 11:28 [PATCH 0/2] memory: tegra: Fixes for COMPILE_TEST Thierry Reding
2021-06-09 11:28 ` [PATCH 1/2] memory: tegra: Add missing dependencies Thierry Reding
2021-06-09 11:58   ` Dmitry Osipenko
2021-06-09 13:19     ` Krzysztof Kozlowski
2021-06-09 16:57       ` Dmitry Osipenko
2021-06-10  6:43         ` Krzysztof Kozlowski
2021-06-10 15:50           ` Dmitry Osipenko
2021-06-10 16:23             ` Dmitry Osipenko
2021-06-11  6:50               ` Krzysztof Kozlowski
2021-06-11  7:21                 ` Dmitry Osipenko
2021-06-11 11:00                   ` Thierry Reding
2021-06-11 13:40                     ` Dmitry Osipenko
2021-06-14 11:50                       ` Krzysztof Kozlowski
2021-06-14 14:16                         ` Dmitry Osipenko
2021-06-09 17:00       ` Thierry Reding
2021-06-10  6:42         ` Krzysztof Kozlowski [this message]
2021-06-17  0:35   ` kernel test robot
2021-06-17  0:35     ` kernel test robot
2021-06-09 11:28 ` [PATCH 2/2] reset: Add compile-test stubs Thierry Reding
2021-06-09 11:47   ` Philipp Zabel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=97fc44f9-30d5-cbcf-431a-fd0c4c7517b7@canonical.com \
    --to=krzysztof.kozlowski@canonical.com \
    --cc=digetx@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=thierry.reding@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.