diff options
Diffstat (limited to 'arch/arm/mach-omap2/pm24xx.c')
-rw-r--r-- | arch/arm/mach-omap2/pm24xx.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index a40457d81927..c85923e56b85 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/irq.h> | 30 | #include <linux/irq.h> |
31 | #include <linux/time.h> | 31 | #include <linux/time.h> |
32 | #include <linux/gpio.h> | 32 | #include <linux/gpio.h> |
33 | #include <linux/console.h> | ||
33 | 34 | ||
34 | #include <asm/mach/time.h> | 35 | #include <asm/mach/time.h> |
35 | #include <asm/mach/irq.h> | 36 | #include <asm/mach/irq.h> |
@@ -118,6 +119,10 @@ static void omap2_enter_full_retention(void) | |||
118 | if (omap_irq_pending()) | 119 | if (omap_irq_pending()) |
119 | goto no_sleep; | 120 | goto no_sleep; |
120 | 121 | ||
122 | /* Block console output in case it is on one of the OMAP UARTs */ | ||
123 | if (try_acquire_console_sem()) | ||
124 | goto no_sleep; | ||
125 | |||
121 | omap_uart_prepare_idle(0); | 126 | omap_uart_prepare_idle(0); |
122 | omap_uart_prepare_idle(1); | 127 | omap_uart_prepare_idle(1); |
123 | omap_uart_prepare_idle(2); | 128 | omap_uart_prepare_idle(2); |
@@ -131,6 +136,8 @@ static void omap2_enter_full_retention(void) | |||
131 | omap_uart_resume_idle(1); | 136 | omap_uart_resume_idle(1); |
132 | omap_uart_resume_idle(0); | 137 | omap_uart_resume_idle(0); |
133 | 138 | ||
139 | release_console_sem(); | ||
140 | |||
134 | no_sleep: | 141 | no_sleep: |
135 | if (omap2_pm_debug) { | 142 | if (omap2_pm_debug) { |
136 | unsigned long long tmp; | 143 | unsigned long long tmp; |