diff mbox series

devfreq: tegra20: add COMMON_CLK dependency

Message ID 20190628103232.2467959-1-arnd@arndb.de
State Accepted
Commit 23ca7d2503d895c80b65e4321fc6cc678c7642f2
Headers show
Series devfreq: tegra20: add COMMON_CLK dependency | expand

Commit Message

Arnd Bergmann June 28, 2019, 10:32 a.m. UTC
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 <arnd@arndb.de>

---
 drivers/devfreq/Kconfig | 1 +
 1 file changed, 1 insertion(+)

-- 
2.20.0

Comments

Dmitry Osipenko June 28, 2019, 11 a.m. UTC | #1
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 <arnd@arndb.de>

> ---

>  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.
Dmitry Osipenko June 28, 2019, 11:05 a.m. UTC | #2
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 <arnd@arndb.de>

>> ---

>>  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..
Dmitry Osipenko June 28, 2019, 12:54 p.m. UTC | #3
28.06.2019 15:27, Arnd Bergmann пишет:
> On Fri, Jun 28, 2019 at 1:05 PM Dmitry Osipenko <digetx@gmail.com> 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 <digetx@gmail.com>
Chanwoo Choi July 1, 2019, 1:49 a.m. UTC | #4
Hi Arnd,

Thanks for fixup.
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>




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 <arnd@arndb.de>

> ---

>  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

>
diff mbox series

Patch

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