diff options
Diffstat (limited to 'arch/arm/mach-omap2/serial.c')
| -rw-r--r-- | arch/arm/mach-omap2/serial.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index becf0e38ef7e..d17960a1be25 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/slab.h> | 27 | #include <linux/slab.h> |
| 28 | #include <linux/serial_8250.h> | 28 | #include <linux/serial_8250.h> |
| 29 | #include <linux/pm_runtime.h> | 29 | #include <linux/pm_runtime.h> |
| 30 | #include <linux/console.h> | ||
| 30 | 31 | ||
| 31 | #ifdef CONFIG_SERIAL_OMAP | 32 | #ifdef CONFIG_SERIAL_OMAP |
| 32 | #include <plat/omap-serial.h> | 33 | #include <plat/omap-serial.h> |
| @@ -406,7 +407,7 @@ void omap_uart_resume_idle(int num) | |||
| 406 | struct omap_uart_state *uart; | 407 | struct omap_uart_state *uart; |
| 407 | 408 | ||
| 408 | list_for_each_entry(uart, &uart_list, node) { | 409 | list_for_each_entry(uart, &uart_list, node) { |
| 409 | if (num == uart->num) { | 410 | if (num == uart->num && uart->can_sleep) { |
| 410 | omap_uart_enable_clocks(uart); | 411 | omap_uart_enable_clocks(uart); |
| 411 | 412 | ||
| 412 | /* Check for IO pad wakeup */ | 413 | /* Check for IO pad wakeup */ |
| @@ -807,6 +808,8 @@ void __init omap_serial_init_port(int port) | |||
| 807 | 808 | ||
| 808 | oh->dev_attr = uart; | 809 | oh->dev_attr = uart; |
| 809 | 810 | ||
| 811 | acquire_console_sem(); /* in case the earlycon is on the UART */ | ||
| 812 | |||
| 810 | /* | 813 | /* |
| 811 | * Because of early UART probing, UART did not get idled | 814 | * Because of early UART probing, UART did not get idled |
| 812 | * on init. Now that omap_device is ready, ensure full idle | 815 | * on init. Now that omap_device is ready, ensure full idle |
| @@ -831,6 +834,8 @@ void __init omap_serial_init_port(int port) | |||
| 831 | omap_uart_block_sleep(uart); | 834 | omap_uart_block_sleep(uart); |
| 832 | uart->timeout = DEFAULT_TIMEOUT; | 835 | uart->timeout = DEFAULT_TIMEOUT; |
| 833 | 836 | ||
| 837 | release_console_sem(); | ||
| 838 | |||
| 834 | if ((cpu_is_omap34xx() && uart->padconf) || | 839 | if ((cpu_is_omap34xx() && uart->padconf) || |
| 835 | (uart->wk_en && uart->wk_mask)) { | 840 | (uart->wk_en && uart->wk_mask)) { |
| 836 | device_init_wakeup(&od->pdev.dev, true); | 841 | device_init_wakeup(&od->pdev.dev, true); |
