diff options
author | Felix Fietkau <nbd@openwrt.org> | 2016-01-30 13:19:53 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2016-01-30 13:19:53 +0000 |
commit | 2530640f07cd2b3b14fe9ec03fa63a586452cc5f (patch) | |
tree | da4d0e63a6771cbd044d3ba8d8dc97bd0615920f /target/linux/ar71xx/patches-4.4/821-serial-core-add-support-for-boot-console-with-arbitr.patch | |
parent | e5b5cce442f6fdaccf86064657518a5d0404f78e (diff) | |
download | mtk-20170518-2530640f07cd2b3b14fe9ec03fa63a586452cc5f.zip mtk-20170518-2530640f07cd2b3b14fe9ec03fa63a586452cc5f.tar.gz mtk-20170518-2530640f07cd2b3b14fe9ec03fa63a586452cc5f.tar.bz2 |
ar71xx: add support for linux 4.4
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 48563
Diffstat (limited to 'target/linux/ar71xx/patches-4.4/821-serial-core-add-support-for-boot-console-with-arbitr.patch')
-rw-r--r-- | target/linux/ar71xx/patches-4.4/821-serial-core-add-support-for-boot-console-with-arbitr.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/target/linux/ar71xx/patches-4.4/821-serial-core-add-support-for-boot-console-with-arbitr.patch b/target/linux/ar71xx/patches-4.4/821-serial-core-add-support-for-boot-console-with-arbitr.patch new file mode 100644 index 0000000..9d6e7bc --- /dev/null +++ b/target/linux/ar71xx/patches-4.4/821-serial-core-add-support-for-boot-console-with-arbitr.patch @@ -0,0 +1,76 @@ +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 230400 Baud. + +With this patch Linux will use the configured baud rate and not some +standard one which is near by. + +Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> +--- + drivers/tty/serial/serial_core.c | 13 ++++++++++--- + include/linux/console.h | 1 + + 2 files changed, 11 insertions(+), 3 deletions(-) + +--- a/drivers/tty/serial/serial_core.c ++++ b/drivers/tty/serial/serial_core.c +@@ -164,6 +164,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; + } + /* +@@ -1909,7 +1911,7 @@ static const struct baud_rates baud_rate + { 4800, B4800 }, + { 2400, B2400 }, + { 1200, B1200 }, +- { 0, B38400 } ++ { 0, BOTHER } + }; + + /** +@@ -1948,10 +1950,13 @@ uart_set_options(struct uart_port *port, + * Construct a cflag setting. + */ + for (i = 0; baud_rates[i].rate; i++) +- if (baud_rates[i].rate <= baud) ++ if (baud_rates[i].rate == baud) + break; + + termios.c_cflag |= baud_rates[i].cflag; ++ if (!baud_rates[i].rate) { ++ termios.c_ospeed = baud; ++ } + + if (bits == 7) + termios.c_cflag |= CS7; +@@ -1981,8 +1986,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 +@@ -128,6 +128,7 @@ struct console { + short flags; + short index; + int cflag; ++ int baud; + void *data; + struct console *next; + }; |