Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 281867
b: refs/heads/master
c: e97ca47
h: refs/heads/master
i:
  281865: 85917e1
  281863: 1c700f9
v: v3
  • Loading branch information
Santosh Shilimkar authored and Kevin Hilman committed Dec 8, 2011
1 parent 9462363 commit e489908
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b5b4f2881f619460fdb165111bac10a3dd8eebee
refs/heads/master: e97ca477e993da87769f967bd6f2602a7eab9715
27 changes: 27 additions & 0 deletions trunk/arch/arm/mach-omap2/omap-smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

#include "common.h"

#include "clockdomain.h"

/* SCU base address */
static void __iomem *scu_base;

Expand Down Expand Up @@ -68,6 +70,8 @@ void __cpuinit platform_secondary_init(unsigned int cpu)

int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
{
static struct clockdomain *cpu1_clkdm;
static bool booted;
/*
* Set synchronisation state between this boot processor
* and the secondary one
Expand All @@ -83,6 +87,29 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
omap_modify_auxcoreboot0(0x200, 0xfffffdff);
flush_cache_all();
smp_wmb();

if (!cpu1_clkdm)
cpu1_clkdm = clkdm_lookup("mpu1_clkdm");

/*
* The SGI(Software Generated Interrupts) are not wakeup capable
* from low power states. This is known limitation on OMAP4 and
* needs to be worked around by using software forced clockdomain
* wake-up. To wakeup CPU1, CPU0 forces the CPU1 clockdomain to
* software force wakeup. The clockdomain is then put back to
* hardware supervised mode.
* More details can be found in OMAP4430 TRM - Version J
* Section :
* 4.3.4.2 Power States of CPU0 and CPU1
*/
if (booted) {
clkdm_wakeup(cpu1_clkdm);
clkdm_allow_idle(cpu1_clkdm);
} else {
dsb_sev();
booted = true;
}

gic_raise_softirq(cpumask_of(cpu), 1);

/*
Expand Down

0 comments on commit e489908

Please sign in to comment.