diff options
author | Varun Wadekar <vwadekar@nvidia.com> | 2016-08-01 22:16:21 -0700 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2017-03-02 13:01:18 -0800 |
commit | 5b5928e834e5adfd4e4eb7d6b849cc6e8b4dbdf1 (patch) | |
tree | 3d0117d69e0e3ce034ba07d68ecb3797bc295339 | |
parent | e954ab8f7686cdf84859b940d7b54b5e64cf8ebc (diff) |
Tegra: uninit and re-init console across System Suspend
This patch removes the console_init() from runtime_setup() as we already
initialize it earlier and disables/enables it across "System Suspend".
Change-Id: I992d3ca56ff4797faf83e8d7fa52c0ef3e1c3367
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-rw-r--r-- | plat/nvidia/tegra/common/tegra_bl31_setup.c | 4 | ||||
-rw-r--r-- | plat/nvidia/tegra/common/tegra_pm.c | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/plat/nvidia/tegra/common/tegra_bl31_setup.c b/plat/nvidia/tegra/common/tegra_bl31_setup.c index 246a03e0..be7092b9 100644 --- a/plat/nvidia/tegra/common/tegra_bl31_setup.c +++ b/plat/nvidia/tegra/common/tegra_bl31_setup.c @@ -293,9 +293,7 @@ void bl31_platform_setup(void) ******************************************************************************/ void bl31_plat_runtime_setup(void) { - /* Initialize the runtime console */ - console_init(tegra_console_base, TEGRA_BOOT_UART_CLK_IN_HZ, - TEGRA_CONSOLE_BAUDRATE); + ; /* do nothing */ } /******************************************************************************* diff --git a/plat/nvidia/tegra/common/tegra_pm.c b/plat/nvidia/tegra/common/tegra_pm.c index b2703dde..13ae6c4b 100644 --- a/plat/nvidia/tegra/common/tegra_pm.c +++ b/plat/nvidia/tegra/common/tegra_pm.c @@ -33,6 +33,7 @@ #include <bl_common.h> #include <context.h> #include <context_mgmt.h> +#include <console.h> #include <debug.h> #include <memctrl.h> #include <mmio.h> @@ -45,6 +46,7 @@ extern uint64_t tegra_bl31_phys_base; extern uint64_t tegra_sec_entry_point; +extern uint64_t tegra_console_base; /* * The following platform setup functions are weakly defined. They @@ -164,6 +166,11 @@ void tegra_pwr_domain_suspend(const psci_power_state_t *target_state) { tegra_soc_pwr_domain_suspend(target_state); + /* Disable console if we are entering deep sleep. */ + if (target_state->pwr_domain_state[PLAT_MAX_PWR_LVL] == + PSTATE_ID_SOC_POWERDN) + console_uninit(); + /* disable GICC */ tegra_gic_cpuif_deactivate(); } @@ -206,6 +213,10 @@ void tegra_pwr_domain_on_finish(const psci_power_state_t *target_state) if (target_state->pwr_domain_state[PLAT_MAX_PWR_LVL] == PSTATE_ID_SOC_POWERDN) { + /* Initialize the runtime console */ + console_init(tegra_console_base, TEGRA_BOOT_UART_CLK_IN_HZ, + TEGRA_CONSOLE_BAUDRATE); + /* * Restore Memory Controller settings as it loses state * during system suspend. |