diff options
author | Varun Wadekar <vwadekar@nvidia.com> | 2014-02-09 23:49:13 -0800 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2014-02-09 23:51:11 -0800 |
commit | f950aa05f2443494d3952fa3970eed83549d6943 (patch) | |
tree | 2d4b4d7d25ada8085b885a99dd1f4f44321a07ed /arch/arm/mach-tegra/pm.c | |
parent | bcb186075677a767c07a89b3bde1f34cc0d788ee (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.c | 67 |
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 |