diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-tegra/pm-t3.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/pm.c | 66 | ||||
-rw-r--r-- | arch/arm/mach-tegra/pm.h | 8 |
3 files changed, 3 insertions, 74 deletions
diff --git a/arch/arm/mach-tegra/pm-t3.c b/arch/arm/mach-tegra/pm-t3.c index 371f48448ac6..167f796271c9 100644 --- a/arch/arm/mach-tegra/pm-t3.c +++ b/arch/arm/mach-tegra/pm-t3.c @@ -3,7 +3,7 @@ * * Tegra3 SOC-specific power and cluster management * - * Copyright (c) 2009-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2009-2014, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,6 +33,7 @@ #include <linux/tegra-powergate.h> #include <linux/tegra-soc.h> #include <linux/tegra-cpuidle.h> +#include <linux/tegra-pm.h> #include <mach/irqs.h> #include <mach/io_dpd.h> diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c index 16e9b2cf55a9..4d4415f54a61 100644 --- a/arch/arm/mach-tegra/pm.c +++ b/arch/arm/mach-tegra/pm.c @@ -134,8 +134,6 @@ static u64 suspend_time; static u64 suspend_entry_time; #endif -static RAW_NOTIFIER_HEAD(tegra_pm_chain_head); - #if defined(CONFIG_ARCH_TEGRA_14x_SOC) static void update_pmc_registers(unsigned long rate); #endif @@ -281,27 +279,6 @@ void tegra_cluster_switch_time(unsigned int flags, int id) } #endif -int tegra_register_pm_notifier(struct notifier_block *nb) -{ - return raw_notifier_chain_register(&tegra_pm_chain_head, nb); -} -EXPORT_SYMBOL(tegra_register_pm_notifier); - -int tegra_unregister_pm_notifier(struct notifier_block *nb) -{ - return raw_notifier_chain_unregister(&tegra_pm_chain_head, nb); -} -EXPORT_SYMBOL(tegra_unregister_pm_notifier); - -#ifdef CONFIG_TEGRA_LP0_IN_IDLE -static int tegra_pm_notifier_call_chain(unsigned int val) -{ - int ret = raw_notifier_call_chain(&tegra_pm_chain_head, val, NULL); - - return notifier_to_errno(ret); -} -#endif - #ifdef CONFIG_PM_SLEEP static const char *tegra_suspend_name[TEGRA_MAX_SUSPEND_MODE] = { [TEGRA_SUSPEND_NONE] = "none", @@ -1331,49 +1308,6 @@ static void tegra_disable_lp1bb_interrupt(void) } #endif -#ifdef CONFIG_TEGRA_LP0_IN_IDLE -int tegra_enter_lp0(unsigned long sleep_time) -{ - int err = 0; - - /* This state is managed by power domains, hence no voice call expected if - * we are entering this state */ - - tegra_pm_notifier_call_chain(TEGRA_PM_SUSPEND); - - tegra_rtc_set_trigger(sleep_time); - - tegra_actmon_save(); - - tegra_dma_save(); - - tegra_smmu_save(); - - err = syscore_save(); - if (err) { - tegra_smmu_restore(); - tegra_dma_restore(); - tegra_rtc_set_trigger(0); - return err; - } - - tegra_suspend_dram(TEGRA_SUSPEND_LP0, 0); - - syscore_restore(); - - tegra_smmu_restore(); - - tegra_dma_restore(); - - tegra_actmon_restore(); - - tegra_rtc_set_trigger(0); - - tegra_pm_notifier_call_chain(TEGRA_PM_RESUME); - - return 0; -} -#endif int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags) { diff --git a/arch/arm/mach-tegra/pm.h b/arch/arm/mach-tegra/pm.h index cda2282e1ae4..d2eb583985ae 100644 --- a/arch/arm/mach-tegra/pm.h +++ b/arch/arm/mach-tegra/pm.h @@ -30,6 +30,7 @@ #include <linux/errno.h> #include <linux/clkdev.h> #include <linux/tegra-pmc.h> +#include <linux/tegra-pm.h> #include "iomap.h" @@ -112,13 +113,6 @@ bool tegra_set_cpu_in_pd(int cpu); void tegra_mc_clk_prepare(void); void tegra_mc_clk_finish(void); -int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags); -#ifdef CONFIG_TEGRA_LP0_IN_IDLE -int tegra_enter_lp0(unsigned long sleep_time); -#else -static inline int tegra_enter_lp0(unsigned long sleep_time) -{ return 0; } -#endif #ifdef CONFIG_TEGRA_LP1_LOW_COREVOLTAGE int tegra_is_lp1_suspend_mode(void); #endif |