Skip to contentSkip to conversation

ARM: tegra: Select SOC_TEGRA_PMC to fix linking error

PATCH In review Krzysztof Kozlowski 3 participants 3 messages Mar 11, 2017 – Mar 20, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: tegra: Select SOC_TEGRA_PMC to fix linking error

It is possible to create a ARMv7 config with ARCH_TEGRA but without any SoC specific flavors. Such configs fails because mach-tegra/pm.c is compiled always and it references SOC_TEGRA_PMC driver:

arch/arm/mach-tegra/built-in.o: In function `tegra_pm_set':
arch/arm/mach-tegra/pm.c:188: undefined reference to `tegra_pmc_enter_suspend_mode'

---
 arch/arm/mach-tegra/Kconfig | 1 +
 drivers/soc/tegra/Kconfig   | 4 ----
 2 files changed, 1 insertion(+), 4 deletions(-)
arch/arm/mach-tegra/Kconfig +1 -0
index 329f01c5b6f8..eabf101979cc 100644
@@ -13,5 +13,6 @@ menuconfig ARCH_TEGRA
 	select ARCH_HAS_RESET_CONTROLLER
 	select RESET_CONTROLLER
 	select SOC_BUS
+	select SOC_TEGRA_PMC
 	help
 	  This enables support for NVIDIA Tegra based systems.
drivers/soc/tegra/Kconfig +0 -4
index 208d6edb3fdb..cfde6d666d4b 100644
@@ -12,7 +12,6 @@ config ARCH_TEGRA_2x_SOC
 	select PINCTRL_TEGRA20
 	select PL310_ERRATA_727915 if CACHE_L2X0
 	select PL310_ERRATA_769419 if CACHE_L2X0
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra AP20 and T20 processors, based on the
@@ -24,7 +23,6 @@ config ARCH_TEGRA_3x_SOC
 	select ARM_ERRATA_764369 if SMP
 	select PINCTRL_TEGRA30
 	select PL310_ERRATA_769419 if CACHE_L2X0
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra T30 processor family, based on the
@@ -35,7 +33,6 @@ config ARCH_TEGRA_114_SOC
 	select ARM_ERRATA_798181 if SMP
 	select HAVE_ARM_ARCH_TIMER
 	select PINCTRL_TEGRA114
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra T114 processor family, based on the
@@ -45,7 +42,6 @@ config ARCH_TEGRA_124_SOC
 	bool "Enable support for Tegra124 family"
 	select HAVE_ARM_ARCH_TIMER
 	select PINCTRL_TEGRA124
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra T124 processor family, based on the
Signature · 1 line
2.9.3
maintainer Acked-by on v1 1/1
#1 lore raw
Quoted 53 lines · Krzysztof Kozlowski

It is possible to create a ARMv7 config with ARCH_TEGRA but without any SoC specific flavors. Such configs fails because mach-tegra/pm.c is compiled always and it references SOC_TEGRA_PMC driver:

arch/arm/mach-tegra/built-in.o: In function `tegra_pm_set':
arch/arm/mach-tegra/pm.c:188: undefined reference to `tegra_pmc_enter_suspend_mode'

---
 arch/arm/mach-tegra/Kconfig | 1 +
 drivers/soc/tegra/Kconfig   | 4 ----
 2 files changed, 1 insertion(+), 4 deletions(-)
arch/arm/mach-tegra/Kconfig +1 -0
index 329f01c5b6f8..eabf101979cc 100644
@@ -13,5 +13,6 @@ menuconfig ARCH_TEGRA
 	select ARCH_HAS_RESET_CONTROLLER
 	select RESET_CONTROLLER
 	select SOC_BUS
+	select SOC_TEGRA_PMC
 	help
 	  This enables support for NVIDIA Tegra based systems.
drivers/soc/tegra/Kconfig +0 -3
index 208d6edb3fdb..cfde6d666d4b 100644
@@ -12,7 +12,6 @@ config ARCH_TEGRA_2x_SOC
 	select PINCTRL_TEGRA20
 	select PL310_ERRATA_727915 if CACHE_L2X0
 	select PL310_ERRATA_769419 if CACHE_L2X0
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra AP20 and T20 processors, based on the
@@ -24,7 +23,6 @@ config ARCH_TEGRA_3x_SOC
 	select ARM_ERRATA_764369 if SMP
 	select PINCTRL_TEGRA30
 	select PL310_ERRATA_769419 if CACHE_L2X0
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra T30 processor family, based on the
@@ -35,7 +33,6 @@ config ARCH_TEGRA_114_SOC
 	select ARM_ERRATA_798181 if SMP
 	select HAVE_ARM_ARCH_TIMER
 	select PINCTRL_TEGRA114
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra T114 processor family, based on the

drivers/soc/tegra/Kconfig config ARCH_TEGRA_124_SOC · line 47

Quoted 7 lines
drivers/soc/tegra/Kconfig +0 -1
@@ -45,7 +42,6 @@ config ARCH_TEGRA_124_SOC
 	bool "Enable support for Tegra124 family"
 	select HAVE_ARM_ARCH_TIMER
 	select PINCTRL_TEGRA124
-	select SOC_TEGRA_PMC
 	select TEGRA_TIMER
 	help
 	  Support for NVIDIA Tegra T124 processor family, based on the

Thanks for the patch.

Cheers
Jon

Signature · 1 line
nvpublic
#2 lore raw
In reply to Krzysztof Kozlowski
Quoted 4 lines · Krzysztof Kozlowski

It is possible to create a ARMv7 config with ARCH_TEGRA but without any SoC specific flavors. Such configs fails because mach-tegra/pm.c is compiled always and it references SOC_TEGRA_PMC driver:

Quoted 8 lines

arch/arm/mach-tegra/built-in.o: In function `tegra_pm_set':
arch/arm/mach-tegra/pm.c:188: undefined reference to `tegra_pmc_enter_suspend_mode'

---
 arch/arm/mach-tegra/Kconfig | 1 +
 drivers/soc/tegra/Kconfig   | 4 ----
 2 files changed, 1 insertion(+), 4 deletions(-)

I was going to apply this, when Arnd sent in a variant that fixes this in a way that is more in line with how we handle this for other drivers.

I've credited you with a Reported-by, though.

Thanks,
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170320/75050c8d/attachment.sig>