diff options
author | Magnus Damm <damm@opensource.se> | 2011-11-09 18:44:01 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-11-09 18:44:01 -0500 |
commit | 056879d2f244001b2888cdc8cf868c33ca8b23a0 (patch) | |
tree | 4a51bc4eddd13bb5797e02e94eb5d15e74903d4b /arch | |
parent | be2658ffe1d2a4ab4e045b22a317459595abc2c4 (diff) |
ARM: mach-shmobile: sh7372 A3SP no_suspend_console fix
If "no_suspend_irq" is used on the sh7372 Mackerel board
with v3.2-rc1 then Suspend-to-RAM fails because the serial
console tries to write to the SCIF driver even though the
power domain is turned off.
This patch checks the state of "console_suspend_enabled"
to see if A3SP should be forced enabled.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-shmobile/pm-sh7372.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/pm-sh7372.c b/arch/arm/mach-shmobile/pm-sh7372.c index e26138352f0..78c98a84743 100644 --- a/arch/arm/mach-shmobile/pm-sh7372.c +++ b/arch/arm/mach-shmobile/pm-sh7372.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/irq.h> | 21 | #include <linux/irq.h> |
22 | #include <linux/bitrev.h> | 22 | #include <linux/bitrev.h> |
23 | #include <linux/console.h> | ||
23 | #include <asm/system.h> | 24 | #include <asm/system.h> |
24 | #include <asm/io.h> | 25 | #include <asm/io.h> |
25 | #include <asm/tlbflush.h> | 26 | #include <asm/tlbflush.h> |
@@ -469,6 +470,11 @@ void __init sh7372_pm_init(void) | |||
469 | /* do not convert A3SM, A3SP, A3SG, A4R power down into A4S */ | 470 | /* do not convert A3SM, A3SP, A3SG, A4R power down into A4S */ |
470 | __raw_writel(0, PDNSEL); | 471 | __raw_writel(0, PDNSEL); |
471 | 472 | ||
473 | /* serial consoles make use of SCIF hardware located in A3SP, | ||
474 | * keep such power domain on if "no_console_suspend" is set. | ||
475 | */ | ||
476 | sh7372_a3sp.stay_on = !console_suspend_enabled; | ||
477 | |||
472 | sh7372_suspend_init(); | 478 | sh7372_suspend_init(); |
473 | sh7372_cpuidle_init(); | 479 | sh7372_cpuidle_init(); |
474 | } | 480 | } |