diff mbox series

soc: qcom: QCOM_RPMH fix build with modular QCOM_RPMH

Message ID 20201027111422.4008114-1-anders.roxell@linaro.org
State New
Headers show
Series soc: qcom: QCOM_RPMH fix build with modular QCOM_RPMH | expand

Commit Message

Anders Roxell Oct. 27, 2020, 11:14 a.m. UTC
When building allmodconfig leading to the following link error with
CONFIG_QCOM_RPMH=y and CONFIG_QCOM_COMMAND_DB=m:

aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':
  drivers/clk/qcom/clk-rpmh.c:474: undefined reference to `cmd_db_read_addr'
  drivers/clk/qcom/clk-rpmh.c:474:(.text+0x254): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `cmd_db_read_addr'

Fix this by adding a Kconfig depenency and forcing QCOM_RPMH to be a
module when QCOM_COMMAND_DB is a module. Also removing the dependency on
'ARCH_QCOM || COMPILE_TEST' since that is already a dependency for
QCOM_COMMAND_DB.

Fixes: 778279f4f5e4 ("soc: qcom: cmd-db: allow loading as a module")
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
---
 drivers/soc/qcom/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Naresh Kamboju Oct. 27, 2020, 11:44 a.m. UTC | #1
On Tue, 27 Oct 2020 at 16:45, Anders Roxell <anders.roxell@linaro.org> wrote:
>
> When building allmodconfig leading to the following link error with
> CONFIG_QCOM_RPMH=y and CONFIG_QCOM_COMMAND_DB=m:
>
> aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':
>   drivers/clk/qcom/clk-rpmh.c:474: undefined reference to `cmd_db_read_addr'
>   drivers/clk/qcom/clk-rpmh.c:474:(.text+0x254): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `cmd_db_read_addr'
>
> Fix this by adding a Kconfig depenency and forcing QCOM_RPMH to be a
> module when QCOM_COMMAND_DB is a module. Also removing the dependency on
> 'ARCH_QCOM || COMPILE_TEST' since that is already a dependency for
> QCOM_COMMAND_DB.
>
> Fixes: 778279f4f5e4 ("soc: qcom: cmd-db: allow loading as a module")
> Signed-off-by: Anders Roxell <anders.roxell@linaro.org>

Tested-by: Naresh Kamboju <naresh.kamboju@linaro.org>

This patch fixed the arm64 build error.

> ---
>  drivers/soc/qcom/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
> index 9b4ae9c16ba7..3bdd1604f78f 100644
> --- a/drivers/soc/qcom/Kconfig
> +++ b/drivers/soc/qcom/Kconfig
> @@ -109,7 +109,7 @@ config QCOM_RMTFS_MEM
>
>  config QCOM_RPMH
>         tristate "Qualcomm RPM-Hardened (RPMH) Communication"
> -       depends on ARCH_QCOM || COMPILE_TEST
> +       depends on QCOM_COMMAND_DB
>         help
>           Support for communication with the hardened-RPM blocks in
>           Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an


Build error noticed on linux next 20201027 tag.

 LD      .tmp_vmlinux.kallsyms1
aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!
aarch64-linux-gnu-ld: Unexpected run-time procedure linkages detected!
aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':
/home/naresh/kernel/next/linux-next/drivers/clk/qcom/clk-rpmh.c:474:
undefined reference to `cmd_db_read_addr'
aarch64-linux-gnu-ld:
/home/naresh/kernel/next/linux-next/drivers/clk/qcom/clk-rpmh.c:481:
undefined reference to `cmd_db_read_aux_data'
aarch64-linux-gnu-ld: drivers/soc/qcom/rpmh-rsc.o: in function `rpmh_rsc_probe':
/home/naresh/kernel/next/linux-next/drivers/soc/qcom/rpmh-rsc.c:948:
undefined reference to `cmd_db_ready'
aarch64-linux-gnu-ld: drivers/regulator/qcom-rpmh-regulator.o: in
function `rpmh_regulator_init_vreg':
/home/naresh/kernel/next/linux-next/drivers/regulator/qcom-rpmh-regulator.c:438:
undefined reference to `cmd_db_read_addr'
make: *** [Makefile:1164: vmlinux] Error 1

- Naresh
Lina Iyer Oct. 27, 2020, 9:15 p.m. UTC | #2
Hi Anders,

On Tue, Oct 27 2020 at 05:14 -0600, Anders Roxell wrote:
>When building allmodconfig leading to the following link error with
>CONFIG_QCOM_RPMH=y and CONFIG_QCOM_COMMAND_DB=m:
>
>aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':
>  drivers/clk/qcom/clk-rpmh.c:474: undefined reference to `cmd_db_read_addr'
>  drivers/clk/qcom/clk-rpmh.c:474:(.text+0x254): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `cmd_db_read_addr'
>
>Fix this by adding a Kconfig depenency and forcing QCOM_RPMH to be a
>module when QCOM_COMMAND_DB is a module. Also removing the dependency on
>'ARCH_QCOM || COMPILE_TEST' since that is already a dependency for
>QCOM_COMMAND_DB.
>
>Fixes: 778279f4f5e4 ("soc: qcom: cmd-db: allow loading as a module")
>Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
>---
> drivers/soc/qcom/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
>index 9b4ae9c16ba7..3bdd1604f78f 100644
>--- a/drivers/soc/qcom/Kconfig
>+++ b/drivers/soc/qcom/Kconfig
>@@ -109,7 +109,7 @@ config QCOM_RMTFS_MEM
>
> config QCOM_RPMH
> 	tristate "Qualcomm RPM-Hardened (RPMH) Communication"
>-	depends on ARCH_QCOM || COMPILE_TEST
>+	depends on QCOM_COMMAND_DB
A solution was posted in the mailing list alredy -
https://lore.kernel.org/linux-arm-msm/20201008040907.7036-1-ilina@codeaurora.org/

If you get a chance, please give that a shot to see if that works for
you.

Thanks,
Lina

> 	help
> 	  Support for communication with the hardened-RPM blocks in
> 	  Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
>-- 
>2.28.0
>
Anders Roxell Oct. 28, 2020, 9:43 a.m. UTC | #3
On Tue, 27 Oct 2020 at 22:15, Lina Iyer <ilina@codeaurora.org> wrote:
>

> Hi Anders,

>

> On Tue, Oct 27 2020 at 05:14 -0600, Anders Roxell wrote:

> >When building allmodconfig leading to the following link error with

> >CONFIG_QCOM_RPMH=y and CONFIG_QCOM_COMMAND_DB=m:

> >

> >aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':

> >  drivers/clk/qcom/clk-rpmh.c:474: undefined reference to `cmd_db_read_addr'

> >  drivers/clk/qcom/clk-rpmh.c:474:(.text+0x254): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `cmd_db_read_addr'

> >

> >Fix this by adding a Kconfig depenency and forcing QCOM_RPMH to be a

> >module when QCOM_COMMAND_DB is a module. Also removing the dependency on

> >'ARCH_QCOM || COMPILE_TEST' since that is already a dependency for

> >QCOM_COMMAND_DB.

> >

> >Fixes: 778279f4f5e4 ("soc: qcom: cmd-db: allow loading as a module")

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

> >---

> > drivers/soc/qcom/Kconfig | 2 +-

> > 1 file changed, 1 insertion(+), 1 deletion(-)

> >

> >diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig

> >index 9b4ae9c16ba7..3bdd1604f78f 100644

> >--- a/drivers/soc/qcom/Kconfig

> >+++ b/drivers/soc/qcom/Kconfig

> >@@ -109,7 +109,7 @@ config QCOM_RMTFS_MEM

> >

> > config QCOM_RPMH

> >       tristate "Qualcomm RPM-Hardened (RPMH) Communication"

> >-      depends on ARCH_QCOM || COMPILE_TEST

> >+      depends on QCOM_COMMAND_DB

> A solution was posted in the mailing list alredy -

> https://lore.kernel.org/linux-arm-msm/20201008040907.7036-1-ilina@codeaurora.org/


I missed that one, thanks.

>

> If you get a chance, please give that a shot to see if that works for

> you.


That will work too, but the "depends on ARCH_QCOM || COMPILE_TEST"
isn't needed since that is already the dependency for QCOM_COMMAND_DB.
So that should be met here too or am I missing something?

Cheers,
Anders

>

> Thanks,

> Lina

>

> >       help

> >         Support for communication with the hardened-RPM blocks in

> >         Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an

> >--

> >2.28.0

> >
Lina Iyer Oct. 28, 2020, 2:35 p.m. UTC | #4
On Wed, Oct 28 2020 at 03:43 -0600, Anders Roxell wrote:
>On Tue, 27 Oct 2020 at 22:15, Lina Iyer <ilina@codeaurora.org> wrote:
>>
>> Hi Anders,
>>
>> On Tue, Oct 27 2020 at 05:14 -0600, Anders Roxell wrote:
>> >When building allmodconfig leading to the following link error with
>> >CONFIG_QCOM_RPMH=y and CONFIG_QCOM_COMMAND_DB=m:
>> >
>> >aarch64-linux-gnu-ld: drivers/clk/qcom/clk-rpmh.o: in function `clk_rpmh_probe':
>> >  drivers/clk/qcom/clk-rpmh.c:474: undefined reference to `cmd_db_read_addr'
>> >  drivers/clk/qcom/clk-rpmh.c:474:(.text+0x254): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `cmd_db_read_addr'
>> >
>> >Fix this by adding a Kconfig depenency and forcing QCOM_RPMH to be a
>> >module when QCOM_COMMAND_DB is a module. Also removing the dependency on
>> >'ARCH_QCOM || COMPILE_TEST' since that is already a dependency for
>> >QCOM_COMMAND_DB.
>> >
>> >Fixes: 778279f4f5e4 ("soc: qcom: cmd-db: allow loading as a module")
>> >Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
>> >---
>> > drivers/soc/qcom/Kconfig | 2 +-
>> > 1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> >diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
>> >index 9b4ae9c16ba7..3bdd1604f78f 100644
>> >--- a/drivers/soc/qcom/Kconfig
>> >+++ b/drivers/soc/qcom/Kconfig
>> >@@ -109,7 +109,7 @@ config QCOM_RMTFS_MEM
>> >
>> > config QCOM_RPMH
>> >       tristate "Qualcomm RPM-Hardened (RPMH) Communication"
>> >-      depends on ARCH_QCOM || COMPILE_TEST
>> >+      depends on QCOM_COMMAND_DB
>> A solution was posted in the mailing list alredy -
>> https://lore.kernel.org/linux-arm-msm/20201008040907.7036-1-ilina@codeaurora.org/
>
>I missed that one, thanks.
>
>>
>> If you get a chance, please give that a shot to see if that works for
>> you.
>
>That will work too, but the "depends on ARCH_QCOM || COMPILE_TEST"
>isn't needed since that is already the dependency for QCOM_COMMAND_DB.
>So that should be met here too or am I missing something?
>
Sure, if you want to post an update to the patch, that would be fine
too.
Bjorn: Have you picked up this patch yet? If he hasn't please feel free
to update the patch. Or, I can do that as well.

--Lina

>Cheers,
>Anders
>
>>
>> Thanks,
>> Lina
>>
>> >       help
>> >         Support for communication with the hardened-RPM blocks in
>> >         Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
>> >--
>> >2.28.0
>> >
diff mbox series

Patch

diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
index 9b4ae9c16ba7..3bdd1604f78f 100644
--- a/drivers/soc/qcom/Kconfig
+++ b/drivers/soc/qcom/Kconfig
@@ -109,7 +109,7 @@  config QCOM_RMTFS_MEM
 
 config QCOM_RPMH
 	tristate "Qualcomm RPM-Hardened (RPMH) Communication"
-	depends on ARCH_QCOM || COMPILE_TEST
+	depends on QCOM_COMMAND_DB
 	help
 	  Support for communication with the hardened-RPM blocks in
 	  Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an