aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2011-11-09 18:44:01 -0500
committerRafael J. Wysocki <rjw@sisk.pl>2011-11-09 18:44:01 -0500
commit056879d2f244001b2888cdc8cf868c33ca8b23a0 (patch)
tree4a51bc4eddd13bb5797e02e94eb5d15e74903d4b /arch
parentbe2658ffe1d2a4ab4e045b22a317459595abc2c4 (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.c6
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}