summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/pm.c
diff options
context:
space:
mode:
authorVarun Wadekar <vwadekar@nvidia.com>2014-02-09 23:49:13 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2014-02-09 23:51:11 -0800
commitf950aa05f2443494d3952fa3970eed83549d6943 (patch)
tree2d4b4d7d25ada8085b885a99dd1f4f44321a07ed /arch/arm/mach-tegra/pm.c
parentbcb186075677a767c07a89b3bde1f34cc0d788ee (diff)
Revert "ARM: tegra: trustzone: Single kernel to work in both secure and non-secure mode."
This reverts commit 7f93a0dddf39f372c064f772f9af6903e91aaacf as the t132ref builds break with the following errors - <android>/kernel/drivers/platform/tegra/../../../arch/arm/mach-tegra/reset.c:45: undefined reference to `is_secure_mode' <android>/kernel/drivers/platform/tegra/../../../arch/arm/mach-tegra/reset.c:57: undefined reference to `is_secure_mode' <android>/kernel/drivers/platform/tegra/../../../arch/arm/mach-tegra/reset.c:58: undefined reference to `tegra_generic_smc' Change-Id: I4e44c2ffba4e1c013213e543b67f2d49a928b764 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/365347
Diffstat (limited to 'arch/arm/mach-tegra/pm.c')
-rw-r--r--arch/arm/mach-tegra/pm.c67
1 files changed, 31 insertions, 36 deletions
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c
index 31a39c833f8c..dad0710fdf41 100644
--- a/arch/arm/mach-tegra/pm.c
+++ b/arch/arm/mach-tegra/pm.c
@@ -702,26 +702,25 @@ bool tegra_set_cpu_in_pd(int cpu)
static void tegra_sleep_core(enum tegra_suspend_mode mode,
unsigned long v2p)
{
- if (!is_secure_mode()) {
- outer_flush_range(__pa(&tegra_resume_timestamps_start),
+#ifdef CONFIG_TEGRA_USE_SECURE_KERNEL
+ outer_flush_range(__pa(&tegra_resume_timestamps_start),
__pa(&tegra_resume_timestamps_end));
- if (mode == TEGRA_SUSPEND_LP0) {
- trace_smc_sleep_core(NVSEC_SMC_START);
+ if (mode == TEGRA_SUSPEND_LP0) {
+ trace_smc_sleep_core(NVSEC_SMC_START);
tegra_generic_smc(0x84000001, ((1 << 16) | (1 << 24) | 1),
virt_to_phys(tegra_resume));
- } else {
- trace_smc_sleep_core(NVSEC_SMC_START);
+ } else {
+ trace_smc_sleep_core(NVSEC_SMC_START);
tegra_generic_smc(0x84000001, ((1 << 16) | 2),
(TEGRA_RESET_HANDLER_BASE +
tegra_cpu_reset_handler_offset));
- }
-
- trace_smc_sleep_core(NVSEC_SMC_DONE);
}
+ trace_smc_sleep_core(NVSEC_SMC_DONE);
+#endif
tegra_get_suspend_time();
#ifdef CONFIG_ARCH_TEGRA_2x_SOC
cpu_suspend(v2p, tegra2_sleep_core_finish);
@@ -737,17 +736,17 @@ static inline void tegra_sleep_cpu(unsigned long v2p)
static inline void tegra_stop_mc_clk(unsigned long v2p)
{
- if (!is_secure_mode()) {
- outer_flush_range(__pa(&tegra_resume_timestamps_start),
+#ifdef CONFIG_TEGRA_USE_SECURE_KERNEL
+ outer_flush_range(__pa(&tegra_resume_timestamps_start),
__pa(&tegra_resume_timestamps_end));
- trace_smc_sleep_core(NVSEC_SMC_START);
+ trace_smc_sleep_core(NVSEC_SMC_START);
tegra_generic_smc(0x84000001, ((1 << 16) | 3),
(TEGRA_RESET_HANDLER_BASE +
tegra_cpu_reset_handler_offset));
- trace_smc_sleep_core(NVSEC_SMC_DONE);
- }
+ trace_smc_sleep_core(NVSEC_SMC_DONE);
+#endif
cpu_suspend(v2p, tegra3_stop_mc_clk_finish);
}
@@ -833,18 +832,14 @@ unsigned int tegra_idle_power_down_last(unsigned int sleep_time,
suspend_cpu_complex(flags);
tegra_cluster_switch_time(flags, tegra_cluster_switch_time_id_prolog);
#if defined(CONFIG_CACHE_L2X0)
- if (!is_secure_mode()) {
- flush_cache_all();
- outer_disable();
- }
-#if !defined(CONFIG_ARCH_TEGRA_14x_SOC)
- else {
- tegra_resume_l2_init = 1;
- __cpuc_flush_dcache_area(&tegra_resume_l2_init,
- sizeof(unsigned long));
- outer_flush_range(__pa(&tegra_resume_l2_init),
+#if defined(CONFIG_TEGRA_USE_SECURE_KERNEL)
+ flush_cache_all();
+ outer_disable();
+#elif !defined(CONFIG_ARCH_TEGRA_14x_SOC)
+ tegra_resume_l2_init = 1;
+ __cpuc_flush_dcache_area(&tegra_resume_l2_init, sizeof(unsigned long));
+ outer_flush_range(__pa(&tegra_resume_l2_init),
__pa(&tegra_resume_l2_init) + sizeof(unsigned long));
- }
#endif
#endif
@@ -892,9 +887,8 @@ unsigned int tegra_idle_power_down_last(unsigned int sleep_time,
#if defined(CONFIG_ARCH_TEGRA_14x_SOC)
tegra_init_cache(true);
-#else
- if (!is_secure_mode())
- tegra_init_cache(false);
+#elif defined(CONFIG_TEGRA_USE_SECURE_KERNEL)
+ tegra_init_cache(false);
#endif
#if defined(CONFIG_TRUSTED_FOUNDATIONS)
@@ -1439,17 +1433,17 @@ int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags)
}
#endif
- if (!is_secure_mode()) {
+#if defined(CONFIG_TEGRA_USE_SECURE_KERNEL)
#ifndef CONFIG_ARCH_TEGRA_11x_SOC
- trace_smc_wake(tegra_resume_smc_entry_time, NVSEC_SMC_START);
- trace_smc_wake(tegra_resume_smc_exit_time, NVSEC_SMC_DONE);
+ trace_smc_wake(tegra_resume_smc_entry_time, NVSEC_SMC_START);
+ trace_smc_wake(tegra_resume_smc_exit_time, NVSEC_SMC_DONE);
#endif
- if (mode == TEGRA_SUSPEND_LP0) {
- trace_secureos_init(tegra_resume_entry_time,
+ if (mode == TEGRA_SUSPEND_LP0) {
+ trace_secureos_init(tegra_resume_entry_time,
NVSEC_SUSPEND_EXIT_DONE);
- }
}
+#endif
if (mode == TEGRA_SUSPEND_LP0) {
@@ -2247,7 +2241,8 @@ late_initcall(tegra_pm_core_debug_init);
#ifdef CONFIG_DEBUG_RODATA
void set_platform_text_rw(void)
{
- if (!is_secure_mode())
- set_memory_rw((unsigned long)tegra_generic_smc, 1);
+#ifdef CONFIG_TEGRA_USE_SECURE_KERNEL
+ set_memory_rw((unsigned long)tegra_generic_smc, 1);
+#endif
}
#endif