summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/platsmp.c
diff options
context:
space:
mode:
authorSeshendra Gadagottu <sgadagottu@nvidia.com>2012-12-11 16:25:53 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 12:48:33 -0700
commit6e6a3384d0e05897be6a2f95954950e791da73ae (patch)
tree64d2e9983fb43727bf7057a74f316cd123d006ff /arch/arm/mach-tegra/platsmp.c
parent478c0034e6b9c075ffd2c49e0465e96f71c1445b (diff)
ARM: tegra14x: secondary cpu booting sequence
Secondary cpu boot sequence corrected for first time booting and hot-plug booting. For first time booting partition power un-gating needs to be done. For hot-plug booting flow controller needs to be programmed for SCLK event trigger. Also fixed the merge issue in tegar11 code, so that tegra11 hotplug code can be re-used. Change-Id: I65673fb221b47eb24169d8c8cd7a8ebb1db5dd15 Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/174363 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bo Yan <byan@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/platsmp.c')
-rw-r--r--arch/arm/mach-tegra/platsmp.c46
1 files changed, 1 insertions, 45 deletions
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c
index 878a5d1e09d4..6502d1fe21a9 100644
--- a/arch/arm/mach-tegra/platsmp.c
+++ b/arch/arm/mach-tegra/platsmp.c
@@ -248,45 +248,6 @@ static int tegra11x_power_up_cpu(unsigned int cpu)
return 0;
}
-static int tegra14x_power_up_cpu(unsigned int cpu)
-{
- u32 reg;
- int ret;
- unsigned long timeout;
-
- BUG_ON(cpu == smp_processor_id());
- BUG_ON(is_lp_cluster());
-
- cpu = cpu_logical_map(cpu);
-
- if (!cpu_isset(cpu, tegra_cpu_init_map)) {
- ret = tegra_unpowergate_partition(TEGRA_CPU_POWERGATE_ID(cpu));
- if (ret)
- goto fail;
- }
-
- /* Wait for the power to come up. */
- timeout = jiffies + msecs_to_jiffies(2000);
-
- do {
- if (is_cpu_powered(cpu))
- goto remove_clamps;
- udelay(10);
- } while (time_before(jiffies, timeout));
- ret = -ETIMEDOUT;
- goto fail;
-
-remove_clamps:
- /* Remove I/O clamps. */
- ret = tegra_powergate_remove_clamping(TEGRA_CPU_POWERGATE_ID(cpu));
-fail:
-
- /* Clear flow controller CSR. */
- flowctrl_write_cpu_csr(cpu, 0);
-
- return ret;
-}
-
static int __cpuinit tegra_boot_secondary(unsigned int cpu, struct task_struct *idle)
{
int status;
@@ -364,13 +325,8 @@ static int __cpuinit tegra_boot_secondary(unsigned int cpu, struct task_struct *
status = tegra30_power_up_cpu(cpu);
break;
case TEGRA11X:
- status = tegra11x_power_up_cpu(cpu);
- break;
case TEGRA14X:
- /* set SCLK as event trigger for flow conroller */
- flowctrl_write_cpu_csr(cpu, 0x1);
- flowctrl_write_cpu_halt(cpu, 0x48000000);
- status = tegra14x_power_up_cpu(cpu);
+ status = tegra11x_power_up_cpu(cpu);
break;
default:
status = -EINVAL;