cpuidle: tegra: Disable CC6 state if LP2 unavailable

LP2 suspending could be unavailable, for example if it is disabled in a
device-tree. CC6 cpuidle state won't work in that case.

Acked-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
Dmitry Osipenko 2020-02-25 01:40:55 +03:00 committed by Thierry Reding
parent 14e086baca
commit 382ac8e22b
1 changed files with 5 additions and 0 deletions

View File

@ -31,6 +31,7 @@
#include <soc/tegra/fuse.h> #include <soc/tegra/fuse.h>
#include <soc/tegra/irq.h> #include <soc/tegra/irq.h>
#include <soc/tegra/pm.h> #include <soc/tegra/pm.h>
#include <soc/tegra/pmc.h>
#include <asm/cpuidle.h> #include <asm/cpuidle.h>
#include <asm/firmware.h> #include <asm/firmware.h>
@ -337,6 +338,10 @@ static void tegra_cpuidle_setup_tegra114_c7_state(void)
static int tegra_cpuidle_probe(struct platform_device *pdev) static int tegra_cpuidle_probe(struct platform_device *pdev)
{ {
/* LP2 could be disabled in device-tree */
if (tegra_pmc_get_suspend_mode() < TEGRA_SUSPEND_LP2)
tegra_cpuidle_disable_state(TEGRA_CC6);
/* /*
* Required suspend-resume functionality, which is provided by the * Required suspend-resume functionality, which is provided by the
* Tegra-arch core and PMC driver, is unavailable if PM-sleep option * Tegra-arch core and PMC driver, is unavailable if PM-sleep option