From: Yinghai Lu Some RS-232 devices require DTR to be asserted before they can be used. DTR is normally asserted in uart_startup() when the port is opened. But we don't actually open serial console ports, so assert DTR when the port is added. BTW: earlyprintk and early_uart are hard coded to set DTR/RTS. Signed-off-by: Yinghai Lu Cc: Russell King Cc: Andi Kleen Cc: Bjorn Helgaas Cc: Gerd Hoffmann Signed-off-by: Andrew Morton --- drivers/serial/serial_core.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletion(-) diff -puN drivers/serial/serial_core.c~serial-assert-dtr-for-serial-console-devices drivers/serial/serial_core.c --- a/drivers/serial/serial_core.c~serial-assert-dtr-for-serial-console-devices +++ a/drivers/serial/serial_core.c @@ -2303,8 +2303,14 @@ int uart_add_one_port(struct uart_driver * It may be that the port was not available. */ if (port->type != PORT_UNKNOWN && - port->cons && !(port->cons->flags & CON_ENABLED)) + port->cons && !(port->cons->flags & CON_ENABLED)) { + /* + * We normally assert DTR when a port is opened, but serial + * console devices aren't actually opened, so do it here. + */ + uart_set_mctrl(port, TIOCM_DTR); register_console(port->cons); + } /* * Ensure UPF_DEAD is not set. _