The Kconfig symbol ARM_QCOM_SPM_CPUIDLE wildly selects other Kconfig symbols when it should not. This causes kconfig warnings and subsequent build errors, as listed below, so modify this symbol's Kconfig entry to constrain and tame it. WARNING: unmet direct dependencies detected for QCOM_SCM Depends on [n]: ARM [=y] && HAVE_ARM_SMCCC [=n] || ARM64 Selected by [y]: - ARM_QCOM_SPM_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64) && (ARCH_QCOM [=n] || COMPILE_TEST [=y]) && !ARM64 WARNING: unmet direct dependencies detected for ARM_CPU_SUSPEND Depends on [n]: ARCH_SUSPEND_POSSIBLE [=n] Selected by [y]: - ARM_QCOM_SPM_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64) && (ARCH_QCOM [=n] || COMPILE_TEST [=y]) && !ARM64 and arm-linux-gnueabi-ld: arch/arm/kernel/sleep.o: in function `__cpu_suspend': (.text+0x68): undefined reference to `cpu_sa110_suspend_size' arm-linux-gnueabi-ld: arch/arm/kernel/suspend.o: in function `__cpu_suspend_save': suspend.c:(.text+0x138): undefined reference to `cpu_sa110_do_suspend' arm-linux-gnueabi-ld: suspend.c:(.text+0x170): undefined reference to `cpu_sa110_do_resume' arm-linux-gnueabi-ld: drivers/firmware/qcom_scm-smc.o: in function `__scm_smc_do_quirk': qcom_scm-smc.c:(.text+0x54): undefined reference to `__arm_smccc_smc' arm-linux-gnueabi-ld: drivers/firmware/qcom_scm-legacy.o: in function `scm_legacy_call': qcom_scm-legacy.c:(.text+0x168): undefined reference to `__arm_smccc_smc' arm-linux-gnueabi-ld: drivers/firmware/qcom_scm-legacy.o: in function `scm_legacy_call_atomic': qcom_scm-legacy.c:(.text+0x2e0): undefined reference to `__arm_smccc_smc' Fixes: a871be6b8eee ("cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver") Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Reported-by: kernel test robot <lkp@xxxxxxxxx> Cc: linux-pm@xxxxxxxxxxxxxxx Cc: Andy Gross <agross@xxxxxxxxxx> Cc: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> Cc: linux-arm-msm@xxxxxxxxxxxxxxx Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx> Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> Cc: Stephan Gerhold <stephan@xxxxxxxxxxx> Cc: Lina Iyer <ilina@xxxxxxxxxxxxxx> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Cc: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> Cc: John Stultz <john.stultz@xxxxxxxxxx> --- v2: change to depends on QCOM_SCM (suggested by Bjorn) drivers/cpuidle/Kconfig.arm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-next-20201123.orig/drivers/cpuidle/Kconfig.arm +++ linux-next-20201123/drivers/cpuidle/Kconfig.arm @@ -108,10 +108,10 @@ 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 QCOM_SCM select ARM_CPU_SUSPEND select CPU_IDLE_MULTIPLE_DRIVERS select DT_IDLE_STATES - select QCOM_SCM help Select this to enable cpuidle for Qualcomm processors. The Subsystem Power Manager (SPM) controls low power modes for the