* [PATCH] cpuidle: arm: qcom: fix Kconfig problems
@ 2020-11-24 1:30 Randy Dunlap
2020-11-24 4:51 ` Bjorn Andersson
0 siblings, 1 reply; 3+ messages in thread
From: Randy Dunlap @ 2020-11-24 1:30 UTC (permalink / raw)
To: linux-kernel
Cc: Randy Dunlap, kernel test robot, linux-pm, Andy Gross,
Bjorn Andersson, linux-arm-msm, Rafael J. Wysocki,
Daniel Lezcano, Stephan Gerhold, Lina Iyer, Ulf Hansson
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@infradead.org>
Reported-by: kernel test robot <lkp@intel.com>
Cc: linux-pm@vger.kernel.org
Cc: Andy Gross <agross@kernel.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Stephan Gerhold <stephan@gerhold.net>
Cc: Lina Iyer <ilina@codeaurora.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
---
drivers/cpuidle/Kconfig.arm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- linux-next-20201123.orig/drivers/cpuidle/Kconfig.arm
+++ linux-next-20201123/drivers/cpuidle/Kconfig.arm
@@ -108,10 +108,11 @@ 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 PM
select ARM_CPU_SUSPEND
select CPU_IDLE_MULTIPLE_DRIVERS
select DT_IDLE_STATES
- select QCOM_SCM
+ select QCOM_SCM if HAVE_ARM_SMCCC
help
Select this to enable cpuidle for Qualcomm processors.
The Subsystem Power Manager (SPM) controls low power modes for the
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] cpuidle: arm: qcom: fix Kconfig problems
2020-11-24 1:30 [PATCH] cpuidle: arm: qcom: fix Kconfig problems Randy Dunlap
@ 2020-11-24 4:51 ` Bjorn Andersson
2020-11-24 6:33 ` Randy Dunlap
0 siblings, 1 reply; 3+ messages in thread
From: Bjorn Andersson @ 2020-11-24 4:51 UTC (permalink / raw)
To: Randy Dunlap
Cc: linux-kernel, kernel test robot, linux-pm, Andy Gross,
linux-arm-msm, Rafael J. Wysocki, Daniel Lezcano,
Stephan Gerhold, Lina Iyer, Ulf Hansson
On Mon 23 Nov 19:30 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 <rdunlap@infradead.org>
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: linux-pm@vger.kernel.org
> Cc: Andy Gross <agross@kernel.org>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> Cc: Stephan Gerhold <stephan@gerhold.net>
> Cc: Lina Iyer <ilina@codeaurora.org>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> ---
> drivers/cpuidle/Kconfig.arm | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> --- linux-next-20201123.orig/drivers/cpuidle/Kconfig.arm
> +++ linux-next-20201123/drivers/cpuidle/Kconfig.arm
> @@ -108,10 +108,11 @@ 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 PM
> select ARM_CPU_SUSPEND
> select CPU_IDLE_MULTIPLE_DRIVERS
> select DT_IDLE_STATES
> - select QCOM_SCM
> + select QCOM_SCM if HAVE_ARM_SMCCC
I presume the trigger for this error is that 'd0511b5496c0 ("firmware:
QCOM_SCM: Allow qcom_scm driver to be loadable as a permenent module")'
made QCOM_SCM user selectable and described the dependency on
HAVE_ARM_SMCCC..
So given that, and the fact that this driver doesn't do anything without
QCOM_SCM, can we instead make it "depends on QCOM_SCM"? I believe it
would inherit the dependency of HAVE_ARM_SMCCC in this case?
Regards,
Bjorn
> help
> Select this to enable cpuidle for Qualcomm processors.
> The Subsystem Power Manager (SPM) controls low power modes for the
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] cpuidle: arm: qcom: fix Kconfig problems
2020-11-24 4:51 ` Bjorn Andersson
@ 2020-11-24 6:33 ` Randy Dunlap
0 siblings, 0 replies; 3+ messages in thread
From: Randy Dunlap @ 2020-11-24 6:33 UTC (permalink / raw)
To: Bjorn Andersson
Cc: linux-kernel, kernel test robot, linux-pm, Andy Gross,
linux-arm-msm, Rafael J. Wysocki, Daniel Lezcano,
Stephan Gerhold, Lina Iyer, Ulf Hansson, John Stultz
On 11/23/20 8:51 PM, Bjorn Andersson wrote:
> On Mon 23 Nov 19:30 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 <rdunlap@infradead.org>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Cc: linux-pm@vger.kernel.org
>> Cc: Andy Gross <agross@kernel.org>
>> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
>> Cc: linux-arm-msm@vger.kernel.org
>> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
>> Cc: Stephan Gerhold <stephan@gerhold.net>
>> Cc: Lina Iyer <ilina@codeaurora.org>
>> Cc: Ulf Hansson <ulf.hansson@linaro.org>
>> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
>> ---
>> drivers/cpuidle/Kconfig.arm | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> --- linux-next-20201123.orig/drivers/cpuidle/Kconfig.arm
>> +++ linux-next-20201123/drivers/cpuidle/Kconfig.arm
>> @@ -108,10 +108,11 @@ 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 PM
>> select ARM_CPU_SUSPEND
>> select CPU_IDLE_MULTIPLE_DRIVERS
>> select DT_IDLE_STATES
>> - select QCOM_SCM
>> + select QCOM_SCM if HAVE_ARM_SMCCC
>
> I presume the trigger for this error is that 'd0511b5496c0 ("firmware:
> QCOM_SCM: Allow qcom_scm driver to be loadable as a permenent module")'
> made QCOM_SCM user selectable and described the dependency on
> HAVE_ARM_SMCCC..
I don't quite see that as contributing to the problem, but maybe
it's just too late at night for me to see it.
> So given that, and the fact that this driver doesn't do anything without
> QCOM_SCM, can we instead make it "depends on QCOM_SCM"? I believe it
> would inherit the dependency of HAVE_ARM_SMCCC in this case?
Sure, I'll respin it like that.
> Regards,
> Bjorn
>
>> help
>> Select this to enable cpuidle for Qualcomm processors.
>> The Subsystem Power Manager (SPM) controls low power modes for the
thanks.
--
~Randy
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-11-24 6:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-24 1:30 [PATCH] cpuidle: arm: qcom: fix Kconfig problems Randy Dunlap
2020-11-24 4:51 ` Bjorn Andersson
2020-11-24 6:33 ` Randy Dunlap
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).