Message ID | 20200529200531.31738-1-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Daniel Lezcano |
Headers | show |
Series | cpuidle/firmware: qcom: fix smcc dependencies | expand |
On Fri 29 May 13:04 PDT 2020, Arnd Bergmann wrote: > Selecting QCOM_SCM for compile-tests is broken when the smcc firmware > is not provided: > > drivers/firmware/qcom_scm-smc.o: in function `scm_smc_call': > qcom_scm-smc.c:(.text+0x110): undefined reference to `__arm_smccc_smc' > drivers/firmware/qcom_scm-legacy.o: in function `scm_legacy_call': > qcom_scm-smc.c:(.text+0x1bc): undefined reference to `__arm_smccc_smc' > > Add a Kconfig dependency for the QCOM_SCM to make it easier to catch > this, and fix the dependency for the newly added ARM_QCOM_SPM_CPUIDLE > symbol that triggered it this time. > > Fixes: a871be6b8eee ("cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > As the bug is currently only present in the cpuidle tree, can we > merge it through that? Sounds good to me. Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- > drivers/cpuidle/Kconfig.arm | 3 ++- > drivers/firmware/Kconfig | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm > index 51a7e89085c0..6cdcf5698c4c 100644 > --- a/drivers/cpuidle/Kconfig.arm > +++ b/drivers/cpuidle/Kconfig.arm > @@ -97,7 +97,8 @@ config ARM_TEGRA_CPUIDLE > > config ARM_QCOM_SPM_CPUIDLE > bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)" > - depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 > + depends on ARCH_QCOM || (COMPILE_TEST && HAVE_ARM_SMCCC) > + depends on ARM > select ARM_CPU_SUSPEND > select CPU_IDLE_MULTIPLE_DRIVERS > select DT_IDLE_STATES > diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig > index fbd785dd0513..297bed30a632 100644 > --- a/drivers/firmware/Kconfig > +++ b/drivers/firmware/Kconfig > @@ -238,6 +238,7 @@ config INTEL_STRATIX10_RSU > config QCOM_SCM > bool > depends on ARM || ARM64 > + depends on HAVE_ARM_SMCCC While this is correct I wonder if we're not opening up for drivers (such as QCOM_RMTFS_MEM) to be selected without HAVE_ARM_SMCCC and cause an unmet dependency issue. Regards, Bjorn > select RESET_CONTROLLER > > config QCOM_SCM_DOWNLOAD_MODE_DEFAULT > -- > 2.26.2 >
diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm index 51a7e89085c0..6cdcf5698c4c 100644 --- a/drivers/cpuidle/Kconfig.arm +++ b/drivers/cpuidle/Kconfig.arm @@ -97,7 +97,8 @@ config ARM_TEGRA_CPUIDLE config ARM_QCOM_SPM_CPUIDLE bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)" - depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 + depends on ARCH_QCOM || (COMPILE_TEST && HAVE_ARM_SMCCC) + depends on ARM select ARM_CPU_SUSPEND select CPU_IDLE_MULTIPLE_DRIVERS select DT_IDLE_STATES diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig index fbd785dd0513..297bed30a632 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -238,6 +238,7 @@ config INTEL_STRATIX10_RSU config QCOM_SCM bool depends on ARM || ARM64 + depends on HAVE_ARM_SMCCC select RESET_CONTROLLER config QCOM_SCM_DOWNLOAD_MODE_DEFAULT
Selecting QCOM_SCM for compile-tests is broken when the smcc firmware is not provided: drivers/firmware/qcom_scm-smc.o: in function `scm_smc_call': qcom_scm-smc.c:(.text+0x110): undefined reference to `__arm_smccc_smc' drivers/firmware/qcom_scm-legacy.o: in function `scm_legacy_call': qcom_scm-smc.c:(.text+0x1bc): undefined reference to `__arm_smccc_smc' Add a Kconfig dependency for the QCOM_SCM to make it easier to catch this, and fix the dependency for the newly added ARM_QCOM_SPM_CPUIDLE symbol that triggered it this time. Fixes: a871be6b8eee ("cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- As the bug is currently only present in the cpuidle tree, can we merge it through that? --- drivers/cpuidle/Kconfig.arm | 3 ++- drivers/firmware/Kconfig | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)