Re: [PATCH] cpuidle: tegra: add ARCH_SUSPEND_POSSIBLE dependency

Arnd Bergmann
2021-10-14T14:42:09Z

On Thu, Oct 14, 2021 at 12:25 AM Dmitry Osipenko <digetx@gmail.com> wrote:
>
> 13.10.2021 19:01, Arnd Bergmann пишет:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > Some StrongARM processors don't support suspend, which leads
> > to a build failure with the tegra 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'
> >
> > Add an explicit dependency to make randconfig builds avoid
> > this combination.
> >
> > Fixes: faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> > drivers/cpuidle/Kconfig.arm | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
> > index 2cc3c208a180..af97992eaa82 100644
> > --- a/drivers/cpuidle/Kconfig.arm
> > +++ b/drivers/cpuidle/Kconfig.arm
> > @@ -100,6 +100,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
> >
>
> Reviewed-by: Dmitry Osipenko <digetx@gmail.com>

Thanks!

I realized now that we should drop the '&& MMU' after my fix, for both
the tegra and qualcomm drivers, reverting the change from 498ba2a8a275
("cpuidle: Fix ARM_QCOM_SPM_CPUIDLE configuration") that got failed
to fix this problem. I'll resend it as a series of three patches with your R-b
on this patch.

On a related note, I now see that the "||COMPILE_TEST" bit for the
arm-specific cpuidle drivers is not all that useful because we can curently
not hit that on non-ARM machines at all. I'll try changing that as well, but
this is probably nontrivial.

Arnd