Currently, there are 7 checks for whether to enable the internal fifo device of a 8250/16550 type uart. Instead of checking all 7 values again whenever we need to know whether we have the fifo device enabled, store the result as a struct member of uart_8250_port. This can, for example, lessen the amount of calculations done during a write operation. Signed-off-by: Michael Pratt <mcpratt@xxxxx> --- V1 -> V2: new commit drivers/tty/serial/8250/8250_port.c | 2 ++ include/linux/serial_8250.h | 1 + 2 files changed, 3 insertions(+) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index fc9dd5d45295..5b0cfe6bc98c 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -3392,6 +3392,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, */ !(up->port.flags & UPF_CONS_FLOW); + up->fifo_enable = use_fifo; + if (likely(use_fifo)) serial8250_console_fifo_write(up, s, count); else diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h index fd59ed2cca53..017429f0e743 100644 --- a/include/linux/serial_8250.h +++ b/include/linux/serial_8250.h @@ -127,6 +127,7 @@ struct uart_8250_port { struct list_head list; /* ports on this IRQ */ u32 capabilities; /* port capabilities */ u16 bugs; /* port bugs */ + unsigned int fifo_enable; /* fifo enabled if capable */ unsigned int tx_loadsz; /* transmit fifo load size */ unsigned char acr; unsigned char fcr; -- 2.30.2