2015-11-20 10:32:59

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH v2] soc: qcom: enable smsm/smp2p modular build

The newly added smp2p and smsm drivers cannot be loadable modules
but depend on smem, which can be, and that causes a link error:

drivers/built-in.o: In function `qcom_smp2p_intr':
:(.text+0xa6e68): undefined reference to `qcom_smem_get'
drivers/built-in.o: In function `qcom_smp2p_probe':
:(.text+0xa7320): undefined reference to `qcom_smem_alloc'
:(.text+0xa736c): undefined reference to `qcom_smem_get'
drivers/built-in.o: In function `qcom_smsm_probe':
:(.text+0xa7b34): undefined reference to `qcom_smem_get'

This marks all the drivers as 'tristate' to make the Kconfig
dependency resolution work properly.

Signed-off-by: Arnd Bergmann <[email protected]>
Fixes: dbb04bd7122f ("soc: qcom: smp2p: Qualcomm Shared Memory Point to Point")
Fixes: d7387fc6add4 ("soc: qcom: smsm: Add driver for Qualcomm SMSM")
---
v2: fixed subject line

diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
index b57be7ab50b6..57b7145358e7 100644
--- a/drivers/soc/qcom/Kconfig
+++ b/drivers/soc/qcom/Kconfig
@@ -54,7 +54,7 @@ config QCOM_SMEM_STATE
bool

config QCOM_SMP2P
- bool "Qualcomm Shared Memory Point to Point support"
+ tristate "Qualcomm Shared Memory Point to Point support"
depends on QCOM_SMEM
select QCOM_SMEM_STATE
help
@@ -62,7 +62,7 @@ config QCOM_SMP2P
protocol.

config QCOM_SMSM
- bool "Qualcomm Shared Memory State Machine"
+ tristate "Qualcomm Shared Memory State Machine"
depends on QCOM_SMEM
select QCOM_SMEM_STATE
help


2015-11-20 13:28:01

by Andy Gross

[permalink] [raw]
Subject: Re: [PATCH v2] soc: qcom: enable smsm/smp2p modular build

On Fri, Nov 20, 2015 at 11:32:21AM +0100, Arnd Bergmann wrote:
> The newly added smp2p and smsm drivers cannot be loadable modules
> but depend on smem, which can be, and that causes a link error:
>
> drivers/built-in.o: In function `qcom_smp2p_intr':
> :(.text+0xa6e68): undefined reference to `qcom_smem_get'
> drivers/built-in.o: In function `qcom_smp2p_probe':
> :(.text+0xa7320): undefined reference to `qcom_smem_alloc'
> :(.text+0xa736c): undefined reference to `qcom_smem_get'
> drivers/built-in.o: In function `qcom_smsm_probe':
> :(.text+0xa7b34): undefined reference to `qcom_smem_get'
>
> This marks all the drivers as 'tristate' to make the Kconfig
> dependency resolution work properly.

Nice catch. I'll add this on top of those.

--
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project