2019-01-22 08:39:23

by Anders Roxell

[permalink] [raw]
Subject: [PATCH v3] 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 <[email protected]>
Signed-off-by: Anders Roxell <[email protected]>
---
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..af141dd2331d 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 && 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 && ARCH_MXC && ARM64
select PINCTRL_IMX_SCU
help
Say Y here to enable the imx8qxp pinctrl driver
--
2.19.2



2019-01-22 11:41:53

by Aisheng Dong

[permalink] [raw]
Subject: RE: [PATCH v3] pinctrl: freescale: fix link errors

> From: Anders Roxell [mailto:[email protected]]
> Sent: Tuesday, January 22, 2019 4:38 PM
>
> Subject: [PATCH v3] pinctrl: freescale: fix link errors

Please change to:
pinctrl: imx: fix scu 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.

Non of them can be built as module.
I think the problem is that the dependent module IMX_SCU is not build in, right?
So you need update the commit message.

>
> 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.

Update here as well

>
> Suggested-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Anders Roxell <[email protected]>
> ---
> 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..af141dd2331d 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

You don't need =y here.

Otherwise, you can add my tag when you resent.
Acked-by: Dong Aisheng <[email protected]>

Regards
Dong Aisheng

> 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 && 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 && ARCH_MXC && ARM64
> select PINCTRL_IMX_SCU
> help
> Say Y here to enable the imx8qxp pinctrl driver
> --
> 2.19.2