Re: [PATCH v2] cpuidle: arm: qcom: fix Kconfig problems

2020-11-24 Thread Bjorn Andersson
On Tue 24 Nov 00:39 CST 2020, Randy Dunlap wrote:

> 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 
> Reported-by: kernel test robot 
> Cc: linux...@vger.kernel.org
> Cc: Andy Gross 
> Cc: Bjorn Andersson 
> Cc: linux-arm-...@vger.kernel.org
> Cc: "Rafael J. Wysocki" 
> Cc: Daniel Lezcano 
> Cc: Stephan Gerhold 
> Cc: Lina Iyer 
> Cc: Ulf Hansson 
> Cc: Bjorn Andersson 
> Cc: John Stultz 

Reviewed-by: Bjorn Andersson 

Regards,
Bjorn

> ---
> 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


[PATCH v2] cpuidle: arm: qcom: fix Kconfig problems

2020-11-23 Thread Randy Dunlap
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 
Reported-by: kernel test robot 
Cc: linux...@vger.kernel.org
Cc: Andy Gross 
Cc: Bjorn Andersson 
Cc: linux-arm-...@vger.kernel.org
Cc: "Rafael J. Wysocki" 
Cc: Daniel Lezcano 
Cc: Stephan Gerhold 
Cc: Lina Iyer 
Cc: Ulf Hansson 
Cc: Bjorn Andersson 
Cc: John Stultz 
---
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