diff options
-rw-r--r-- | arch/arm/mach-omap2/serial.c | 14 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/omap-serial.h | 2 | ||||
-rw-r--r-- | drivers/tty/serial/omap-serial.c | 1 |
3 files changed, 3 insertions, 14 deletions
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 64b0d11ddc49..b3f3284bf6ba 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -74,19 +74,6 @@ struct omap_uart_state { | |||
74 | static LIST_HEAD(uart_list); | 74 | static LIST_HEAD(uart_list); |
75 | static u8 num_uarts; | 75 | static u8 num_uarts; |
76 | 76 | ||
77 | /* | ||
78 | * Internal UARTs need to be initialized for the 8250 autoconfig to work | ||
79 | * properly. Note that the TX watermark initialization may not be needed | ||
80 | * once the 8250.c watermark handling code is merged. | ||
81 | */ | ||
82 | |||
83 | static inline void __init omap_uart_reset(struct omap_uart_state *uart) | ||
84 | { | ||
85 | serial_write_reg(uart, UART_OMAP_MDR1, UART_OMAP_MDR1_DISABLE); | ||
86 | serial_write_reg(uart, UART_OMAP_SCR, 0x08); | ||
87 | serial_write_reg(uart, UART_OMAP_MDR1, UART_OMAP_MDR1_16X_MODE); | ||
88 | } | ||
89 | |||
90 | #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3) | 77 | #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3) |
91 | 78 | ||
92 | /* | 79 | /* |
@@ -521,7 +508,6 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
521 | 508 | ||
522 | omap_device_enable(uart->pdev); | 509 | omap_device_enable(uart->pdev); |
523 | omap_uart_idle_init(uart); | 510 | omap_uart_idle_init(uart); |
524 | omap_uart_reset(uart); | ||
525 | omap_hwmod_enable_wakeup(uart->oh); | 511 | omap_hwmod_enable_wakeup(uart->oh); |
526 | omap_device_idle(uart->pdev); | 512 | omap_device_idle(uart->pdev); |
527 | 513 | ||
diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h index 70e7738dd3a0..5b913c71cd7f 100644 --- a/arch/arm/plat-omap/include/plat/omap-serial.h +++ b/arch/arm/plat-omap/include/plat/omap-serial.h | |||
@@ -33,6 +33,8 @@ | |||
33 | 33 | ||
34 | #define OMAP_MODE13X_SPEED 230400 | 34 | #define OMAP_MODE13X_SPEED 230400 |
35 | 35 | ||
36 | #define OMAP_UART_SCR_TX_EMPTY 0x08 | ||
37 | |||
36 | /* WER = 0x7F | 38 | /* WER = 0x7F |
37 | * Enable module level wakeup in WER reg | 39 | * Enable module level wakeup in WER reg |
38 | */ | 40 | */ |
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 5327ff0b008e..f5a5ed676825 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c | |||
@@ -770,6 +770,7 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios, | |||
770 | serial_out(up, UART_IER, up->ier); | 770 | serial_out(up, UART_IER, up->ier); |
771 | serial_out(up, UART_LCR, cval); /* reset DLAB */ | 771 | serial_out(up, UART_LCR, cval); /* reset DLAB */ |
772 | up->lcr = cval; | 772 | up->lcr = cval; |
773 | up->scr = OMAP_UART_SCR_TX_EMPTY; | ||
773 | 774 | ||
774 | /* FIFOs and DMA Settings */ | 775 | /* FIFOs and DMA Settings */ |
775 | 776 | ||