From 1e04b0c06d5c1fb23b973a02e7aca3257837d09c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 1 Feb 2020 23:40:41 +0100 Subject: [PATCH 152/464] tty: serial: 8250-dw: Use fifo-size from DTS Saves 20ms per port of boot time. Signed-off-by: Ondrej Jirman --- drivers/tty/serial/8250/8250_dw.c | 4 ++++ drivers/tty/serial/8250/8250_port.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c index 7db51781289e..8442394e338e 100644 --- a/drivers/tty/serial/8250/8250_dw.c +++ b/drivers/tty/serial/8250/8250_dw.c @@ -594,6 +594,10 @@ static int dw8250_probe(struct platform_device *pdev) /* Always ask for fixed clock rate from a property. */ device_property_read_u32(dev, "clock-frequency", &p->uartclk); + val = 0; + device_property_read_u32(dev, "fifo-size", &val); + p->fifosize = val; + /* If there is separate baudclk, get the rate from it. */ data->clk = devm_clk_get_optional(dev, "baudclk"); if (data->clk == NULL) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 16aeb1420137..62a5b539fc88 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -791,6 +791,9 @@ static int size_fifo(struct uart_8250_port *up) u32 old_dl; int count; + if (up->port.fifosize) + return up->port.fifosize; + old_lcr = serial_in(up, UART_LCR); serial_out(up, UART_LCR, 0); old_fcr = serial_in(up, UART_FCR); -- 2.34.1