From 2a3dd384599dc3e092a1aa1e2a3757482a158bc3 Mon Sep 17 00:00:00 2001 From: Varun Wadekar Date: Sat, 21 Mar 2020 18:49:33 -0700 Subject: Tegra: fixup GIC init from the 'on_finish' handler Commit e9e19fb2fe684a740afc4820b3ee4cc38ad67d70 accidentally removed the GIC init routine required to initialze the distributor on system resume. This patch fixes this anomaly and initializes the distributor on system resume. Signed-off-by: Varun Wadekar Change-Id: I3fdc694404faa509952f2d90b1f16541165e583e --- plat/nvidia/tegra/common/tegra_pm.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/plat/nvidia/tegra/common/tegra_pm.c b/plat/nvidia/tegra/common/tegra_pm.c index 5ec6f849e..0430048e2 100644 --- a/plat/nvidia/tegra/common/tegra_pm.c +++ b/plat/nvidia/tegra/common/tegra_pm.c @@ -151,17 +151,19 @@ void tegra_pwr_domain_on_finish(const psci_power_state_t *target_state) { const plat_params_from_bl2_t *plat_params; - /* - * Initialize the GIC cpu and distributor interfaces - */ - tegra_gic_pcpu_init(); - /* * Check if we are exiting from deep sleep. */ if (target_state->pwr_domain_state[PLAT_MAX_PWR_LVL] == PSTATE_ID_SOC_POWERDN) { + /* + * On entering System Suspend state, the GIC loses power + * completely. Initialize the GIC global distributor and + * GIC cpu interfaces. + */ + tegra_gic_init(); + /* Restart console output. */ console_switch_state(CONSOLE_FLAG_RUNTIME); @@ -183,6 +185,11 @@ void tegra_pwr_domain_on_finish(const psci_power_state_t *target_state) * access */ tegra_memctrl_tzram_setup(TEGRA_TZRAM_BASE, TEGRA_TZRAM_SIZE); + } else { + /* + * Initialize the GIC cpu and distributor interfaces + */ + tegra_gic_pcpu_init(); } /* -- cgit v1.2.3