@@ -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,
@@ -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;
}
@@ -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;
}