You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
Diff
55 lines
1.6 KiB
Diff
From 4d3c17975c7814884a721fe693b3adf5c426d759 Mon Sep 17 00:00:00 2001
|
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
|
Date: Tue, 10 Nov 2015 22:18:39 +0100
|
|
Subject: [RFC] serial: core: add support for boot console with arbitrary
|
|
baud rates
|
|
|
|
The Arduino Yun uses a baud rate of 250000 by default. The serial is
|
|
going over the Atmel ATmega and is used to connect to this chip.
|
|
Without this patch Linux wants to switch the console to 9600 Baud.
|
|
|
|
With this patch Linux will use the configured baud rate and not a
|
|
default one specified in uart_register_driver().
|
|
|
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
|
[rebased to 4.14, slightly reworded commit message]
|
|
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
|
|
---
|
|
drivers/tty/serial/serial_core.c | 6 +++++-
|
|
include/linux/console.h | 1 +
|
|
2 files changed, 6 insertions(+), 1 deletions(-)
|
|
|
|
--- a/drivers/tty/serial/serial_core.c
|
|
+++ b/drivers/tty/serial/serial_core.c
|
|
@@ -220,6 +220,8 @@ static int uart_port_startup(struct tty_
|
|
if (retval == 0) {
|
|
if (uart_console(uport) && uport->cons->cflag) {
|
|
tty->termios.c_cflag = uport->cons->cflag;
|
|
+ tty->termios.c_ospeed = uport->cons->baud;
|
|
+ tty->termios.c_ispeed = uport->cons->baud;
|
|
uport->cons->cflag = 0;
|
|
}
|
|
/*
|
|
@@ -2104,8 +2106,10 @@ uart_set_options(struct uart_port *port,
|
|
* Allow the setting of the UART parameters with a NULL console
|
|
* too:
|
|
*/
|
|
- if (co)
|
|
+ if (co) {
|
|
co->cflag = termios.c_cflag;
|
|
+ co->baud = baud;
|
|
+ }
|
|
|
|
return 0;
|
|
}
|
|
--- a/include/linux/console.h
|
|
+++ b/include/linux/console.h
|
|
@@ -153,6 +153,7 @@ struct console {
|
|
short flags;
|
|
short index;
|
|
int cflag;
|
|
+ int baud;
|
|
void *data;
|
|
struct console *next;
|
|
};
|