|
@@ -44,6 +44,20 @@
|
|
|
static DEFINE_SPINLOCK(tegra_lp2_lock);
|
|
|
void (*tegra_tear_down_cpu)(void);
|
|
|
|
|
|
+static void tegra_tear_down_cpu_init(void)
|
|
|
+{
|
|
|
+ switch (tegra_chip_id) {
|
|
|
+ case TEGRA20:
|
|
|
+ if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC))
|
|
|
+ tegra_tear_down_cpu = tegra20_tear_down_cpu;
|
|
|
+ break;
|
|
|
+ case TEGRA30:
|
|
|
+ if (IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC))
|
|
|
+ tegra_tear_down_cpu = tegra30_tear_down_cpu;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* restore_cpu_complex
|
|
|
*
|
|
@@ -224,6 +238,7 @@ void __init tegra_init_suspend(void)
|
|
|
if (tegra_pmc_get_suspend_mode() == TEGRA_SUSPEND_NONE)
|
|
|
return;
|
|
|
|
|
|
+ tegra_tear_down_cpu_init();
|
|
|
tegra_pmc_suspend_init();
|
|
|
|
|
|
suspend_set_ops(&tegra_suspend_ops);
|