[v2] cpuidle: add ARCH_SUSPEND_POSSIBLE dependencies

Message ID 20230206193319.4107220-1-arnd@kernel.org
State New
Headers
Series [v2] cpuidle: add ARCH_SUSPEND_POSSIBLE dependencies |

Commit Message

Arnd Bergmann Feb. 6, 2023, 7:33 p.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

Some ARMv4 processors don't support suspend, which leads
to a build failure with the tegra and qualcomm cpuidle driver:

WARNING: unmet direct dependencies detected for ARM_CPU_SUSPEND
  Depends on [n]: ARCH_SUSPEND_POSSIBLE [=n]
  Selected by [y]:
  - ARM_TEGRA_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA [=n] || COMPILE_TEST [=y]) && !ARM64 && MMU [=y]

arch/arm/kernel/sleep.o: in function `__cpu_suspend':
(.text+0x68): undefined reference to `cpu_sa110_suspend_size'
(.text+0x68): undefined reference to `cpu_fa526_suspend_size'

Add an explicit dependency to make randconfig builds avoid
this combination.

Fixes: faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")
Fixes: a871be6b8eee ("cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver")
Link: https://lore.kernel.org/all/20211013160125.772873-1-arnd@kernel.org/
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: stable@vger.kernel.org
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
I found this in my backlog of patches that never made it upstream,
testing shows this is still needed. Please apply.
---
 drivers/cpuidle/Kconfig.arm | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Thierry Reding Feb. 7, 2023, 10:14 a.m. UTC | #1
On Mon, Feb 06, 2023 at 08:33:06PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Some ARMv4 processors don't support suspend, which leads
> to a build failure with the tegra and qualcomm cpuidle driver:
> 
> WARNING: unmet direct dependencies detected for ARM_CPU_SUSPEND
>   Depends on [n]: ARCH_SUSPEND_POSSIBLE [=n]
>   Selected by [y]:
>   - ARM_TEGRA_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA [=n] || COMPILE_TEST [=y]) && !ARM64 && MMU [=y]
> 
> arch/arm/kernel/sleep.o: in function `__cpu_suspend':
> (.text+0x68): undefined reference to `cpu_sa110_suspend_size'
> (.text+0x68): undefined reference to `cpu_fa526_suspend_size'
> 
> Add an explicit dependency to make randconfig builds avoid
> this combination.
> 
> Fixes: faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")
> Fixes: a871be6b8eee ("cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver")
> Link: https://lore.kernel.org/all/20211013160125.772873-1-arnd@kernel.org/
> Cc: Randy Dunlap <rdunlap@infradead.org>
> Cc: stable@vger.kernel.org
> Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I found this in my backlog of patches that never made it upstream,
> testing shows this is still needed. Please apply.
> ---
>  drivers/cpuidle/Kconfig.arm | 2 ++
>  1 file changed, 2 insertions(+)

Acked-by: Thierry Reding <treding@nvidia.com>
  
Rafael J. Wysocki Feb. 9, 2023, 7:52 p.m. UTC | #2
On Tue, Feb 7, 2023 at 11:14 AM Thierry Reding <treding@nvidia.com> wrote:
>
> On Mon, Feb 06, 2023 at 08:33:06PM +0100, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > Some ARMv4 processors don't support suspend, which leads
> > to a build failure with the tegra and qualcomm cpuidle driver:
> >
> > WARNING: unmet direct dependencies detected for ARM_CPU_SUSPEND
> >   Depends on [n]: ARCH_SUSPEND_POSSIBLE [=n]
> >   Selected by [y]:
> >   - ARM_TEGRA_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA [=n] || COMPILE_TEST [=y]) && !ARM64 && MMU [=y]
> >
> > arch/arm/kernel/sleep.o: in function `__cpu_suspend':
> > (.text+0x68): undefined reference to `cpu_sa110_suspend_size'
> > (.text+0x68): undefined reference to `cpu_fa526_suspend_size'
> >
> > Add an explicit dependency to make randconfig builds avoid
> > this combination.
> >
> > Fixes: faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")
> > Fixes: a871be6b8eee ("cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver")
> > Link: https://lore.kernel.org/all/20211013160125.772873-1-arnd@kernel.org/
> > Cc: Randy Dunlap <rdunlap@infradead.org>
> > Cc: stable@vger.kernel.org
> > Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> > I found this in my backlog of patches that never made it upstream,
> > testing shows this is still needed. Please apply.
> > ---
> >  drivers/cpuidle/Kconfig.arm | 2 ++
> >  1 file changed, 2 insertions(+)
>
> Acked-by: Thierry Reding <treding@nvidia.com>

Applied as 6.3 material, thanks!
  

Patch

diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
index 747aa537389b..f0714a32921e 100644
--- a/drivers/cpuidle/Kconfig.arm
+++ b/drivers/cpuidle/Kconfig.arm
@@ -102,6 +102,7 @@  config ARM_MVEBU_V7_CPUIDLE
 config ARM_TEGRA_CPUIDLE
 	bool "CPU Idle Driver for NVIDIA Tegra SoCs"
 	depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
+	depends on ARCH_SUSPEND_POSSIBLE
 	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
 	select ARM_CPU_SUSPEND
 	help
@@ -110,6 +111,7 @@  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 && MMU
+	depends on ARCH_SUSPEND_POSSIBLE
 	select ARM_CPU_SUSPEND
 	select CPU_IDLE_MULTIPLE_DRIVERS
 	select DT_IDLE_STATES