diff mbox

[v2] OMAP2+: disable idle early in the suspend sequence

Message ID 1291799364-23154-1-git-send-email-jean.pihet@newoldbits.com (mailing list archive)
State Superseded
Delegated to: Kevin Hilman
Headers show

Commit Message

Jean Pihet Dec. 8, 2010, 9:09 a.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
index c85923e..3820179 100644
--- a/arch/arm/mach-omap2/pm24xx.c
+++ b/arch/arm/mach-omap2/pm24xx.c
@@ -286,8 +286,6 @@  out:
 
 static int omap2_pm_prepare(void)
 {
-	/* We cannot sleep in idle until we have resumed */
-	disable_hlt();
 	return 0;
 }
 
@@ -330,10 +328,24 @@  static int omap2_pm_enter(suspend_state_t state)
 
 static void omap2_pm_finish(void)
 {
+}
+
+static int omap2_pm_begin(suspend_state_t state)
+{
+	/* We cannot sleep in idle until we have resumed */
+	disable_hlt();
+	return 0;
+}
+
+static void omap2_pm_end(void)
+{
 	enable_hlt();
+	return;
 }
 
 static struct platform_suspend_ops omap_pm_ops = {
+	.begin		= omap2_pm_begin,
+	.end		= omap2_pm_end,
 	.prepare	= omap2_pm_prepare,
 	.enter		= omap2_pm_enter,
 	.finish		= omap2_pm_finish,
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 0ec8a04..ec80d38 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -518,7 +518,6 @@  static suspend_state_t suspend_state;
 
 static int omap3_pm_prepare(void)
 {
-	disable_hlt();
 	return 0;
 }
 
@@ -586,12 +585,12 @@  static int omap3_pm_enter(suspend_state_t unused)
 
 static void omap3_pm_finish(void)
 {
-	enable_hlt();
 }
 
 /* Hooks to enable / disable UART interrupts during suspend */
 static int omap3_pm_begin(suspend_state_t state)
 {
+	disable_hlt();
 	suspend_state = state;
 	omap_uart_enable_irqs(0);
 	return 0;
@@ -601,6 +600,7 @@  static void omap3_pm_end(void)
 {
 	suspend_state = PM_SUSPEND_ON;
 	omap_uart_enable_irqs(1);
+	enable_hlt();
 	return;
 }
 
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index 54544b4..f4c4fab 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -33,7 +33,6 @@  static LIST_HEAD(pwrst_list);
 #ifdef CONFIG_SUSPEND
 static int omap4_pm_prepare(void)
 {
-	disable_hlt();
 	return 0;
 }
 
@@ -61,17 +60,18 @@  static int omap4_pm_enter(suspend_state_t suspend_state)
 
 static void omap4_pm_finish(void)
 {
-	enable_hlt();
 	return;
 }
 
 static int omap4_pm_begin(suspend_state_t state)
 {
+	disable_hlt();
 	return 0;
 }
 
 static void omap4_pm_end(void)
 {
+	enable_hlt();
 	return;
 }