aboutsummaryrefslogtreecommitdiff
path: root/plat/nvidia/tegra/common/drivers/pmc/pmc.c
diff options
context:
space:
mode:
authorVarun Wadekar <vwadekar@nvidia.com>2015-07-16 10:35:12 +0530
committerVarun Wadekar <vwadekar@nvidia.com>2015-07-17 19:06:47 +0530
commit2e7aea3d485821b8c78dbf092489f8a20a4e5e1d (patch)
tree641dbb7e6b1fc7dd1b66b9f62e6cc54bdcfacba3 /plat/nvidia/tegra/common/drivers/pmc/pmc.c
parent03cd23a10aac675773a90ef238c33dba73cdae7c (diff)
downloadtrusted-firmware-a-2e7aea3d485821b8c78dbf092489f8a20a4e5e1d.tar.gz
Tegra: PMC: check if a CPU is already online
This patch checks if the target CPU is already online before proceeding with it's power ON sequence. Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Diffstat (limited to 'plat/nvidia/tegra/common/drivers/pmc/pmc.c')
-rw-r--r--plat/nvidia/tegra/common/drivers/pmc/pmc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/plat/nvidia/tegra/common/drivers/pmc/pmc.c b/plat/nvidia/tegra/common/drivers/pmc/pmc.c
index 5796ac79e4..6e7f23c6cf 100644
--- a/plat/nvidia/tegra/common/drivers/pmc/pmc.c
+++ b/plat/nvidia/tegra/common/drivers/pmc/pmc.c
@@ -52,6 +52,13 @@ void tegra_pmc_cpu_on(int cpu)
uint32_t val;
/*
+ * Check if CPU is already power ungated
+ */
+ val = tegra_pmc_read_32(PMC_PWRGATE_STATUS);
+ if (val & (1 << pmc_cpu_powergate_id[cpu]))
+ return;
+
+ /*
* The PMC deasserts the START bit when it starts the power
* ungate process. Loop till no power toggle is in progress.
*/