Message ID | 20211019153823.477524-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | remoteproc: fix linking against QMP | expand |
Quoting Arnd Bergmann (2021-10-19 08:38:04) > From: Arnd Bergmann <arnd@arndb.de> > > With QCOM_AOSS_QMP=m, the built-in q6v5 code fails to link: > > ld.lld: error: undefined symbol: qmp_send > >>> referenced by qcom_q6v5.c > >>> remoteproc/qcom_q6v5.o:(q6v5_load_state_toggle) in archive drivers/built-in.a > > ld.lld: error: undefined symbol: qmp_get > >>> referenced by qcom_q6v5.c > >>> remoteproc/qcom_q6v5.o:(qcom_q6v5_init) in archive drivers/built-in.a > > ld.lld: error: undefined symbol: qmp_put > >>> referenced by qcom_q6v5.c > >>> remoteproc/qcom_q6v5.o:(qcom_q6v5_init) in archive drivers/built-in.a > >>> referenced by qcom_q6v5.c > >>> remoteproc/qcom_q6v5.o:(qcom_q6v5_deinit) in archive drivers/built-in.a > > Apparently it is meant to work without that code, so add > another hacky dependency to prevent the broken link, but > explicitly allow it to be built without QCOM_AOSS_QMP. > > QCOM_Q6V5_COMMON is a hidden symbol, but add the dependency > there anyway to give a hint in case another user comes up and > misses gets this wrong again. > > Fixes: c1fe10d238c0 ("remoteproc: qcom: q6v5: Use qmp_send to update co-processor load state") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- Reviewed-by: Stephen Boyd <swboyd@chromium.org>
diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig index f2e961f998ca..d45e47b873b1 100644 --- a/drivers/remoteproc/Kconfig +++ b/drivers/remoteproc/Kconfig @@ -171,11 +171,13 @@ config QCOM_Q6V5_COMMON tristate depends on ARCH_QCOM depends on QCOM_SMEM + depends on QCOM_AOSS_QMP || !QCOM_AOSS_QMP config QCOM_Q6V5_ADSP tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader" depends on OF && ARCH_QCOM depends on QCOM_SMEM + depends on QCOM_AOSS_QMP || !QCOM_AOSS_QMP depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n depends on QCOM_SYSMON || QCOM_SYSMON=n @@ -198,6 +200,7 @@ config QCOM_Q6V5_MSS depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n depends on QCOM_SYSMON || QCOM_SYSMON=n + depends on QCOM_AOSS_QMP || !QCOM_AOSS_QMP depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n select MFD_SYSCON select QCOM_MDT_LOADER @@ -214,6 +217,7 @@ config QCOM_Q6V5_PAS tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support" depends on OF && ARCH_QCOM depends on QCOM_SMEM + depends on QCOM_AOSS_QMP || !QCOM_AOSS_QMP depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n depends on QCOM_SYSMON || QCOM_SYSMON=n @@ -235,6 +239,7 @@ config QCOM_Q6V5_WCSS tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader" depends on OF && ARCH_QCOM depends on QCOM_SMEM + depends on QCOM_AOSS_QMP || !QCOM_AOSS_QMP depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n depends on QCOM_SYSMON || QCOM_SYSMON=n