2019-06-28 10:34:10

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] devfreq: tegra20: add COMMON_CLK dependency

Compile-testing the new driver on platforms without CONFIG_COMMON_CLK
leads to a link error:

drivers/devfreq/tegra20-devfreq.o: In function `tegra_devfreq_target':
tegra20-devfreq.c:(.text+0x288): undefined reference to `clk_set_min_rate'

Add a dependency on COMMON_CLK to avoid this.

Fixes: 1d39ee8dad6d ("PM / devfreq: Introduce driver for NVIDIA Tegra20")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/devfreq/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
index f3b242987fd9..defe1d438710 100644
--- a/drivers/devfreq/Kconfig
+++ b/drivers/devfreq/Kconfig
@@ -107,6 +107,7 @@ config ARM_TEGRA_DEVFREQ
config ARM_TEGRA20_DEVFREQ
tristate "NVIDIA Tegra20 DEVFREQ Driver"
depends on (TEGRA_MC && TEGRA20_EMC) || COMPILE_TEST
+ depends on COMMON_CLK
select DEVFREQ_GOV_SIMPLE_ONDEMAND
select PM_OPP
help
--
2.20.0


2019-06-28 11:01:33

by Dmitry Osipenko

[permalink] [raw]
Subject: Re: [PATCH] devfreq: tegra20: add COMMON_CLK dependency

28.06.2019 13:32, Arnd Bergmann пишет:
> Compile-testing the new driver on platforms without CONFIG_COMMON_CLK
> leads to a link error:
>
> drivers/devfreq/tegra20-devfreq.o: In function `tegra_devfreq_target':
> tegra20-devfreq.c:(.text+0x288): undefined reference to `clk_set_min_rate'
>
> Add a dependency on COMMON_CLK to avoid this.
>
> Fixes: 1d39ee8dad6d ("PM / devfreq: Introduce driver for NVIDIA Tegra20")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> drivers/devfreq/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> index f3b242987fd9..defe1d438710 100644
> --- a/drivers/devfreq/Kconfig
> +++ b/drivers/devfreq/Kconfig
> @@ -107,6 +107,7 @@ config ARM_TEGRA_DEVFREQ
> config ARM_TEGRA20_DEVFREQ
> tristate "NVIDIA Tegra20 DEVFREQ Driver"
> depends on (TEGRA_MC && TEGRA20_EMC) || COMPILE_TEST
> + depends on COMMON_CLK
> select DEVFREQ_GOV_SIMPLE_ONDEMAND
> select PM_OPP
> help
>

How is it possible to happen? There is a stub for clk_set_min_rate() when COMMON_CLK
is disabled .. Could you please show the kernel's config that causes the problem?

Moreover that was me who added the missing stub for clk_set_min_rate() in [1] to fix [2].

[1]
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/include/linux/clk.h?id=b88c9f4129dcec941e5a26508e991c08051ed1ac

[2] https://lists.01.org/pipermail/kbuild-all/2019-April/060292.html

So this patch looks wrong to me because apparently it fixes a non-existent problem.

2019-06-28 11:06:19

by Dmitry Osipenko

[permalink] [raw]
Subject: Re: [PATCH] devfreq: tegra20: add COMMON_CLK dependency

28.06.2019 14:00, Dmitry Osipenko пишет:
> 28.06.2019 13:32, Arnd Bergmann пишет:
>> Compile-testing the new driver on platforms without CONFIG_COMMON_CLK
>> leads to a link error:
>>
>> drivers/devfreq/tegra20-devfreq.o: In function `tegra_devfreq_target':
>> tegra20-devfreq.c:(.text+0x288): undefined reference to `clk_set_min_rate'
>>
>> Add a dependency on COMMON_CLK to avoid this.
>>
>> Fixes: 1d39ee8dad6d ("PM / devfreq: Introduce driver for NVIDIA Tegra20")
>> Signed-off-by: Arnd Bergmann <[email protected]>
>> ---
>> drivers/devfreq/Kconfig | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
>> index f3b242987fd9..defe1d438710 100644
>> --- a/drivers/devfreq/Kconfig
>> +++ b/drivers/devfreq/Kconfig
>> @@ -107,6 +107,7 @@ config ARM_TEGRA_DEVFREQ
>> config ARM_TEGRA20_DEVFREQ
>> tristate "NVIDIA Tegra20 DEVFREQ Driver"
>> depends on (TEGRA_MC && TEGRA20_EMC) || COMPILE_TEST
>> + depends on COMMON_CLK
>> select DEVFREQ_GOV_SIMPLE_ONDEMAND
>> select PM_OPP
>> help
>>
>
> How is it possible to happen? There is a stub for clk_set_min_rate() when COMMON_CLK
> is disabled .. Could you please show the kernel's config that causes the problem?
>
> Moreover that was me who added the missing stub for clk_set_min_rate() in [1] to fix [2].
>
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/include/linux/clk.h?id=b88c9f4129dcec941e5a26508e991c08051ed1ac
>
> [2] https://lists.01.org/pipermail/kbuild-all/2019-April/060292.html
>
> So this patch looks wrong to me because apparently it fixes a non-existent problem.
>

Oh, wait. That was "implicit declaration" and this one is "undefined reference"!
Still looks like something else need to be fixed..

2019-06-28 12:29:18

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] devfreq: tegra20: add COMMON_CLK dependency

On Fri, Jun 28, 2019 at 1:05 PM Dmitry Osipenko <[email protected]> wrote:
> 28.06.2019 14:00, Dmitry Osipenko пишет:

> >
> > How is it possible to happen? There is a stub for clk_set_min_rate() when COMMON_CLK
> > is disabled .. Could you please show the kernel's config that causes the problem?
> >
> > Moreover that was me who added the missing stub for clk_set_min_rate() in [1] to fix [2].
> >
> > [1]
> > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/include/linux/clk.h?id=b88c9f4129dcec941e5a26508e991c08051ed1ac
> >
> > [2] https://lists.01.org/pipermail/kbuild-all/2019-April/060292.html
> >
> > So this patch looks wrong to me because apparently it fixes a non-existent problem.
> >
>
> Oh, wait. That was "implicit declaration" and this one is "undefined reference"!
> Still looks like something else need to be fixed..

The stub takes care of the case where there is no CLK support at all, i.e.
CONFIG_HAVE_CLK is disabled. However, some older ARM platforms
still have a custom implementation of the API and lack clk_set_min_rate().

$ git grep -l 'EXPORT_SYMBOL.*\<clk_set_rate\>' | xargs grep -L
clk_set_min_rate
arch/arm/mach-ep93xx/clock.c
arch/arm/mach-mmp/clock.c
arch/arm/mach-omap1/clock.c
arch/arm/mach-sa1100/clock.c
arch/arm/mach-w90x900/clock.c
arch/c6x/platforms/pll.c
arch/m68k/coldfire/clk.c
arch/mips/ar7/clock.c
arch/mips/bcm63xx/clk.c
arch/mips/lantiq/clk.c
arch/mips/loongson64/lemote-2f/clock.c
arch/mips/ralink/clk.c
arch/unicore32/kernel/clock.c
drivers/sh/clk/core.c

We could in theory convert all of those to COMMON_CLK, or simply add
a dummy clk_set_min_rate() for each one, but since there is only one user,
my fix was simpler.

Arnd

2019-06-28 12:54:45

by Dmitry Osipenko

[permalink] [raw]
Subject: Re: [PATCH] devfreq: tegra20: add COMMON_CLK dependency

28.06.2019 15:27, Arnd Bergmann пишет:
> On Fri, Jun 28, 2019 at 1:05 PM Dmitry Osipenko <[email protected]> wrote:
>> 28.06.2019 14:00, Dmitry Osipenko пишет:
>
>>>
>>> How is it possible to happen? There is a stub for clk_set_min_rate() when COMMON_CLK
>>> is disabled .. Could you please show the kernel's config that causes the problem?
>>>
>>> Moreover that was me who added the missing stub for clk_set_min_rate() in [1] to fix [2].
>>>
>>> [1]
>>> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/include/linux/clk.h?id=b88c9f4129dcec941e5a26508e991c08051ed1ac
>>>
>>> [2] https://lists.01.org/pipermail/kbuild-all/2019-April/060292.html
>>>
>>> So this patch looks wrong to me because apparently it fixes a non-existent problem.
>>>
>>
>> Oh, wait. That was "implicit declaration" and this one is "undefined reference"!
>> Still looks like something else need to be fixed..
>
> The stub takes care of the case where there is no CLK support at all, i.e.
> CONFIG_HAVE_CLK is disabled. However, some older ARM platforms
> still have a custom implementation of the API and lack clk_set_min_rate().
>
> $ git grep -l 'EXPORT_SYMBOL.*\<clk_set_rate\>' | xargs grep -L
> clk_set_min_rate
> arch/arm/mach-ep93xx/clock.c
> arch/arm/mach-mmp/clock.c
> arch/arm/mach-omap1/clock.c
> arch/arm/mach-sa1100/clock.c
> arch/arm/mach-w90x900/clock.c
> arch/c6x/platforms/pll.c
> arch/m68k/coldfire/clk.c
> arch/mips/ar7/clock.c
> arch/mips/bcm63xx/clk.c
> arch/mips/lantiq/clk.c
> arch/mips/loongson64/lemote-2f/clock.c
> arch/mips/ralink/clk.c
> arch/unicore32/kernel/clock.c
> drivers/sh/clk/core.c
>
> We could in theory convert all of those to COMMON_CLK, or simply add
> a dummy clk_set_min_rate() for each one, but since there is only one user,
> my fix was simpler.

Okay, thank you for the clarification. Looks like "Tegra30 DEVFREQ" should cause the
same trouble for you as well then.

Reviewed-by: Dmitry Osipenko <[email protected]>

2019-07-01 03:13:26

by Chanwoo Choi

[permalink] [raw]
Subject: Re: [PATCH] devfreq: tegra20: add COMMON_CLK dependency

Hi Arnd,

Thanks for fixup.
Reviewed-by: Chanwoo Choi <[email protected]>



Hi Myungjoo,
This patch have to be merged for linux 5.3 before sending pull-request
because it fixed the build error of merged patch[1] on devfreq.git.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq.git/commit/?h=for-next&id=028b3793284fa1bb4db73a90608d7cb24664480c

Best Regards,
Chanwoo Choi

On 19. 6. 28. 오후 7:32, Arnd Bergmann wrote:
> Compile-testing the new driver on platforms without CONFIG_COMMON_CLK
> leads to a link error:
>
> drivers/devfreq/tegra20-devfreq.o: In function `tegra_devfreq_target':
> tegra20-devfreq.c:(.text+0x288): undefined reference to `clk_set_min_rate'
>
> Add a dependency on COMMON_CLK to avoid this.
>
> Fixes: 1d39ee8dad6d ("PM / devfreq: Introduce driver for NVIDIA Tegra20")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> drivers/devfreq/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> index f3b242987fd9..defe1d438710 100644
> --- a/drivers/devfreq/Kconfig
> +++ b/drivers/devfreq/Kconfig
> @@ -107,6 +107,7 @@ config ARM_TEGRA_DEVFREQ
> config ARM_TEGRA20_DEVFREQ
> tristate "NVIDIA Tegra20 DEVFREQ Driver"
> depends on (TEGRA_MC && TEGRA20_EMC) || COMPILE_TEST
> + depends on COMMON_CLK
> select DEVFREQ_GOV_SIMPLE_ONDEMAND
> select PM_OPP
> help
>

2019-07-09 06:10:11

by MyungJoo Ham

[permalink] [raw]
Subject: RE: Re: [PATCH] devfreq: tegra20: add COMMON_CLK dependency

On 19. 6. 28. 오후 7:32, Arnd Bergmann wrote:
> Compile-testing the new driver on platforms without CONFIG_COMMON_CLK
> leads to a link error:
>
> drivers/devfreq/tegra20-devfreq.o: In function `tegra_devfreq_target':
> tegra20-devfreq.c:(.text+0x288): undefined reference to `clk_set_min_rate'
>
> Add a dependency on COMMON_CLK to avoid this.
>
> Fixes: 1d39ee8dad6d ("PM / devfreq: Introduce driver for NVIDIA Tegra20")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> drivers/devfreq/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig
> index f3b242987fd9..defe1d438710 100644
> --- a/drivers/devfreq/Kconfig
> +++ b/drivers/devfreq/Kconfig
> @@ -107,6 +107,7 @@ config ARM_TEGRA_DEVFREQ
> config ARM_TEGRA20_DEVFREQ
> tristate "NVIDIA Tegra20 DEVFREQ Driver"
> depends on (TEGRA_MC && TEGRA20_EMC) || COMPILE_TEST
> + depends on COMMON_CLK
> select DEVFREQ_GOV_SIMPLE_ONDEMAND
> select PM_OPP
> help
>

Acked-by: MyungJoo Ham <[email protected]>

Thanks!


Cheers,
MyungJoo.