[v2] pinctrl: freescale: fix link errors

Message ID 20190114111327.27272-1-anders.roxell@linaro.org
State New
Headers show
Series
  • [v2] pinctrl: freescale: fix link errors
Related show

Commit Message

Anders Roxell Jan. 14, 2019, 11:13 a.m.
Fix link errors when PINCTRL_IMX_SCU, PINCTRL_IMX8QM or PINCTRL_IMXBQXP
is enabled as a module and the dependent module is built-in.

ld: drivers/pinctrl/freescale/pinctrl-scu.o: in function `imx_pinctrl_sc_ipc_init':
pinctrl-scu.c:(.text+0x10): undefined reference to `imx_scu_get_handle'
ld: pinctrl-scu.c:(.text+0x10): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `imx_scu_get_handle'
ld: drivers/pinctrl/freescale/pinctrl-scu.o: in function `imx_pinconf_get_scu':
pinctrl-scu.c:(.text+0xa0): undefined reference to `imx_scu_call_rpc'
ld: pinctrl-scu.c:(.text+0xa0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `imx_scu_call_rpc'
ld: drivers/pinctrl/freescale/pinctrl-scu.o: in function `imx_pinconf_set_scu':
pinctrl-scu.c:(.text+0x1b4): undefined reference to `imx_scu_call_rpc'
ld: pinctrl-scu.c:(.text+0x1b4): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `imx_scu_call_rpc'
ld: drivers/pinctrl/freescale/pinctrl-imx8qxp.o: in function `imx8qxp_pinctrl_probe':
pinctrl-imx8qxp.c:(.text+0x28): undefined reference to `imx_pinctrl_probe'
ld: pinctrl-imx8qxp.c:(.text+0x28): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `imx_pinctrl_probe'

Rework so that PINCTRL_IMX_SCU and the config's that 'select
PINCTRL_IMX_SCU' depends on IMX_SCU=y.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>

---
 drivers/pinctrl/freescale/Kconfig | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

-- 
2.19.2

Comments

Aisheng Dong Jan. 18, 2019, 8:22 a.m. | #1
> From: Anders Roxell [mailto:anders.roxell@linaro.org]

> Sent: Monday, January 14, 2019 7:13 PM

> Subject: [PATCH v2] pinctrl: freescale: fix link errors

> 

> Fix link errors when PINCTRL_IMX_SCU, PINCTRL_IMX8QM or

> PINCTRL_IMXBQXP is enabled as a module and the dependent module is

> built-in.

> 

> ld: drivers/pinctrl/freescale/pinctrl-scu.o: in function `imx_pinctrl_sc_ipc_init':

> pinctrl-scu.c:(.text+0x10): undefined reference to `imx_scu_get_handle'

> ld: pinctrl-scu.c:(.text+0x10): relocation truncated to fit: R_AARCH64_CALL26

> against undefined symbol `imx_scu_get_handle'

> ld: drivers/pinctrl/freescale/pinctrl-scu.o: in function `imx_pinconf_get_scu':

> pinctrl-scu.c:(.text+0xa0): undefined reference to `imx_scu_call_rpc'

> ld: pinctrl-scu.c:(.text+0xa0): relocation truncated to fit: R_AARCH64_CALL26

> against undefined symbol `imx_scu_call_rpc'

> ld: drivers/pinctrl/freescale/pinctrl-scu.o: in function `imx_pinconf_set_scu':

> pinctrl-scu.c:(.text+0x1b4): undefined reference to `imx_scu_call_rpc'

> ld: pinctrl-scu.c:(.text+0x1b4): relocation truncated to fit: R_AARCH64_CALL26

> against undefined symbol `imx_scu_call_rpc'

> ld: drivers/pinctrl/freescale/pinctrl-imx8qxp.o: in function

> `imx8qxp_pinctrl_probe':

> pinctrl-imx8qxp.c:(.text+0x28): undefined reference to `imx_pinctrl_probe'

> ld: pinctrl-imx8qxp.c:(.text+0x28): relocation truncated to fit:

> R_AARCH64_CALL26 against undefined symbol `imx_pinctrl_probe'

> 

> Rework so that PINCTRL_IMX_SCU and the config's that 'select

> PINCTRL_IMX_SCU' depends on IMX_SCU=y.

> 

> Suggested-by: Arnd Bergmann <arnd@arndb.de>

> Signed-off-by: Anders Roxell <anders.roxell@linaro.org>


Thanks for the fix.

> ---

>  drivers/pinctrl/freescale/Kconfig | 6 +++---

>  1 file changed, 3 insertions(+), 3 deletions(-)

> 

> diff --git a/drivers/pinctrl/freescale/Kconfig b/drivers/pinctrl/freescale/Kconfig

> index b318c24b61be..a599b72b350a 100644

> --- a/drivers/pinctrl/freescale/Kconfig

> +++ b/drivers/pinctrl/freescale/Kconfig

> @@ -7,7 +7,7 @@ config PINCTRL_IMX

> 

>  config PINCTRL_IMX_SCU

>  	bool

> -	depends on IMX_SCU

> +	depends on IMX_SCU=y

>  	select PINCTRL_IMX

> 

>  config PINCTRL_IMX1_CORE

> @@ -131,14 +131,14 @@ config PINCTRL_IMX8MQ

> 

>  config PINCTRL_IMX8QM

>  	bool "IMX8QM pinctrl driver"

> -	depends on ARCH_MXC && ARM64

> +	depends on IMX_SCU=y && ARCH_MXC && ARM64


Neither IMX_SCU nor PINCTRL_IMX8QM can be built as module.
So I guess the fix could be simply:
depends on IMX_SCU && ARCH_MXC && ARM64

>  	select PINCTRL_IMX_SCU

>  	help

>  	  Say Y here to enable the imx8qm pinctrl driver

> 

>  config PINCTRL_IMX8QXP

>  	bool "IMX8QXP pinctrl driver"

> -	depends on ARCH_MXC && ARM64

> +	depends on IMX_SCU=y && ARCH_MXC && ARM64


Ditto

Can you please check if this works and update the commit log accordingly?

Regards
Dong Aisheng

>  	select PINCTRL_IMX_SCU

>  	help

>  	  Say Y here to enable the imx8qxp pinctrl driver

> --

> 2.19.2

Patch

diff --git a/drivers/pinctrl/freescale/Kconfig b/drivers/pinctrl/freescale/Kconfig
index b318c24b61be..a599b72b350a 100644
--- a/drivers/pinctrl/freescale/Kconfig
+++ b/drivers/pinctrl/freescale/Kconfig
@@ -7,7 +7,7 @@  config PINCTRL_IMX
 
 config PINCTRL_IMX_SCU
 	bool
-	depends on IMX_SCU
+	depends on IMX_SCU=y
 	select PINCTRL_IMX
 
 config PINCTRL_IMX1_CORE
@@ -131,14 +131,14 @@  config PINCTRL_IMX8MQ
 
 config PINCTRL_IMX8QM
 	bool "IMX8QM pinctrl driver"
-	depends on ARCH_MXC && ARM64
+	depends on IMX_SCU=y && ARCH_MXC && ARM64
 	select PINCTRL_IMX_SCU
 	help
 	  Say Y here to enable the imx8qm pinctrl driver
 
 config PINCTRL_IMX8QXP
 	bool "IMX8QXP pinctrl driver"
-	depends on ARCH_MXC && ARM64
+	depends on IMX_SCU=y && ARCH_MXC && ARM64
 	select PINCTRL_IMX_SCU
 	help
 	  Say Y here to enable the imx8qxp pinctrl driver