diff options
author | 2014-05-20 14:22:54 -0500 | |
---|---|---|
committer | 2014-05-20 14:22:54 -0500 | |
commit | 6e87b7030e3ef2c7ad01fcaa1b46d3ebe6c261e7 (patch) | |
tree | e01eaf5fcfed6767da9fcfd8f5120ef667c81bb8 /include/linux | |
parent | Merge branch 'dt-bus-name' into for-next (diff) | |
parent | tty/serial: fix generic earlycon option parsing (diff) | |
download | wireguard-linux-6e87b7030e3ef2c7ad01fcaa1b46d3ebe6c261e7.tar.xz wireguard-linux-6e87b7030e3ef2c7ad01fcaa1b46d3ebe6c261e7.zip |
Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty into for-next
Conflicts:
arch/arm64/kernel/early_printk.c
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/serial_core.h | 16 | ||||
-rw-r--r-- | include/linux/tty_ldisc.h | 5 |
2 files changed, 20 insertions, 1 deletions
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index f729be981da0..7a15b5b24c0b 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -285,6 +285,22 @@ static inline int uart_poll_timeout(struct uart_port *port) /* * Console helpers. */ +struct earlycon_device { + struct console *con; + struct uart_port port; + char options[16]; /* e.g., 115200n8 */ + unsigned int baud; +}; +int setup_earlycon(char *buf, const char *match, + int (*setup)(struct earlycon_device *, const char *)); + +#define EARLYCON_DECLARE(name, func) \ +static int __init name ## _setup_earlycon(char *buf) \ +{ \ + return setup_earlycon(buf, __stringify(name), func); \ +} \ +early_param("earlycon", name ## _setup_earlycon); + struct uart_port *uart_get_console(struct uart_port *ports, int nr, struct console *c); void uart_parse_options(char *options, int *baud, int *parity, int *bits, diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h index add26da2faeb..00c9d688d7b7 100644 --- a/include/linux/tty_ldisc.h +++ b/include/linux/tty_ldisc.h @@ -92,7 +92,10 @@ * This function is called by the low-level tty driver to signal * that line discpline should try to send more characters to the * low-level driver for transmission. If the line discpline does - * not have any more data to send, it can just return. + * not have any more data to send, it can just return. If the line + * discipline does have some data to send, please arise a tasklet + * or workqueue to do the real data transfer. Do not send data in + * this hook, it may leads to a deadlock. * * int (*hangup)(struct tty_struct *) * |