On 2/4/21 9:40 AM, Arnd Bergmann wrote:
From: Arnd Bergmann <a...@arndb.de>

Building the remoteproc drivers into the kernel while the qcom_glink
code is in a loadable module results in a link error:

ld.lld: error: undefined symbol: qcom_glink_ssr_notify
referenced by vmlinux.o:(glink_subdev_unprepare)

Add a Kconfig dependency to avoid this.

So if they're incompatible in that way it's declared in the
header but not defined in the kernel so the link fails.

And at issue is anything that calls qcom_add_glink_subdev(),
which is qcom_q6v5_{adsp,mss,pas,wcss}.c, and those are
selected by CONFIG_QCOM_Q6V5_{ADSP,MSS,PAS,WCSS}.

But I don't see why QCOM_WCNSS_PIL needs the dependency.

Can you explain that?  Other that that this looks good
to me (and I'll offer reviewed-by with your response).

Thanks.

                                        -Alex

Fixes: 8527efc59d45 ("rpmsg: glink: Guard qcom_glink_ssr_notify() with correct 
config")
Fixes: 5d1f2e3c8090 ("soc: qcom: glink_ssr: Internalize ssr_notifiers")
Signed-off-by: Arnd Bergmann <a...@arndb.de>
---
  drivers/remoteproc/Kconfig | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
index 9e7efe542f69..88488af01fd9 100644
--- a/drivers/remoteproc/Kconfig
+++ b/drivers/remoteproc/Kconfig
@@ -155,6 +155,7 @@ config QCOM_Q6V5_ADSP
        depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
        depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
        depends on QCOM_SYSMON || QCOM_SYSMON=n
+       depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
        select MFD_SYSCON
        select QCOM_PIL_INFO
        select QCOM_MDT_LOADER
@@ -171,6 +172,7 @@ config QCOM_Q6V5_MSS
        depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
        depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
        depends on QCOM_SYSMON || QCOM_SYSMON=n
+       depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
        select MFD_SYSCON
        select QCOM_MDT_LOADER
        select QCOM_PIL_INFO
@@ -188,6 +190,7 @@ config QCOM_Q6V5_PAS
        depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
        depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
        depends on QCOM_SYSMON || QCOM_SYSMON=n
+       depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
        select MFD_SYSCON
        select QCOM_PIL_INFO
        select QCOM_MDT_LOADER
@@ -206,6 +209,7 @@ config QCOM_Q6V5_WCSS
        depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
        depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
        depends on QCOM_SYSMON || QCOM_SYSMON=n
+       depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
        select MFD_SYSCON
        select QCOM_MDT_LOADER
        select QCOM_PIL_INFO
@@ -238,6 +242,7 @@ config QCOM_WCNSS_PIL
        depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
        depends on QCOM_SMEM
        depends on QCOM_SYSMON || QCOM_SYSMON=n
+       depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
        select QCOM_MDT_LOADER
        select QCOM_PIL_INFO
        select QCOM_RPROC_COMMON


Reply via email to