Non-critical PM fix via Kevin Hilman <khilman@linaro.org>:
OMAP PM fixes for v3.10 Note that this has a dependency to omap-for-v3.10/cleanup-v2-signed. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJRYvfIAAoJEBvUPslcq6VzqJ4QAOIK3KFoxO+Of0f86Y5P598q tp91sQbXPzMW7MzawJ/YR0K9bX25vam5k6wuh8VnF6xQBfeF0jKBEKE5ksZbratM jrA2Xz52iHtNaCPE44AdbyRLZSV8wl60cpOIAF5ymLZuGQ2ZJYgJvLQqY7wffMTd T/S6EfJxz7r2cvlHeSJsDkVmovime7Zw0rj6AO2G4F62djQvL+BvOTkpva4aFH/e sH43RTnqA3qxlXYfoxFHam2kgTr6A2N44hoddS5MV3IuSannsz9Jiuj2kBxyWmh0 /UHyonHRPDMQmWrYKEZnTkV05pLCZhC3KM/84y+im/jND2Q+zkamrKyaOPo2ZORt sP5ZksBJyr4S/FmSdXCjtmbfrwhAcwC2btt+Vp8747O7ccnipWe5QA54rMuLbaiq Kw7qYwrPPgmyX2umlCsYH5LeaZW+sK19cAAQcXVUf87z+LmCPD7HbN2oXDY9sR7c zNPjY0GJLG2IKyLfIAFwpzE32I2Ld1KAj2owtE2qU4E/94Me3f+SBnFq38cpZyDd WnvXh1OY5K++7VkBKAIcyEJ007BzK0plJYCifVAkPkoPFS1Y1SxKtYfTbdeV56hj 8JuxRu45gOc/pn3VPuRyNOT6BRhEZtI5NP13Bq1koBlz29mGCCb+E33rbp331nhm GPokhwSA2USvDP8hgf1B =qEVL -----END PGP SIGNATURE----- Merge tag 'omap-for-v3.10/fixes-pm-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup From Tony Lindgren <tony@atomide.com>: Non-critical PM fix via Kevin Hilman <khilman@linaro.org>: OMAP PM fixes for v3.10 Note that this has a dependency to omap-for-v3.10/cleanup-v2-signed. * tag 'omap-for-v3.10/fixes-pm-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP4+: PM: Restore CPU power state to ON with clockdomain force wakeup method Signed-off-by: Arnd Bergmann <arnd@arndb.de<
This commit is contained in:
commit
f199ab1aab
|
@ -131,6 +131,7 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev,
|
|||
/* Wakeup CPU1 only if it is not offlined */
|
||||
if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
|
||||
clkdm_wakeup(cpu_clkdm[1]);
|
||||
omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
|
||||
clkdm_allow_idle(cpu_clkdm[1]);
|
||||
}
|
||||
|
||||
|
|
|
@ -76,6 +76,7 @@ static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct *
|
|||
{
|
||||
static struct clockdomain *cpu1_clkdm;
|
||||
static bool booted;
|
||||
static struct powerdomain *cpu1_pwrdm;
|
||||
void __iomem *base = omap_get_wakeupgen_base();
|
||||
|
||||
/*
|
||||
|
@ -95,8 +96,10 @@ static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct *
|
|||
else
|
||||
__raw_writel(0x20, base + OMAP_AUX_CORE_BOOT_0);
|
||||
|
||||
if (!cpu1_clkdm)
|
||||
if (!cpu1_clkdm && !cpu1_pwrdm) {
|
||||
cpu1_clkdm = clkdm_lookup("mpu1_clkdm");
|
||||
cpu1_pwrdm = pwrdm_lookup("cpu1_pwrdm");
|
||||
}
|
||||
|
||||
/*
|
||||
* The SGI(Software Generated Interrupts) are not wakeup capable
|
||||
|
@ -109,7 +112,7 @@ static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct *
|
|||
* Section :
|
||||
* 4.3.4.2 Power States of CPU0 and CPU1
|
||||
*/
|
||||
if (booted) {
|
||||
if (booted && cpu1_pwrdm && cpu1_clkdm) {
|
||||
/*
|
||||
* GIC distributor control register has changed between
|
||||
* CortexA9 r1pX and r2pX. The Control Register secure
|
||||
|
@ -130,7 +133,12 @@ static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct *
|
|||
gic_dist_disable();
|
||||
}
|
||||
|
||||
/*
|
||||
* Ensure that CPU power state is set to ON to avoid CPU
|
||||
* powerdomain transition on wfi
|
||||
*/
|
||||
clkdm_wakeup(cpu1_clkdm);
|
||||
omap_set_pwrdm_state(cpu1_pwrdm, PWRDM_POWER_ON);
|
||||
clkdm_allow_idle(cpu1_clkdm);
|
||||
|
||||
if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD)) {
|
||||
|
|
Loading…
Reference in New Issue