build/patch/kernel/archive/sunxi-5.15/patches.megous/tty-serial-8250-dw-Use-fifo-size-from-DTS.patch

46 lines
1.5 KiB
Diff

From d09d23beb69dfe182da8c3dc0717e6e0cc8de26b Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Sat, 1 Feb 2020 23:40:41 +0100
Subject: [PATCH 233/478] tty: serial: 8250-dw: Use fifo-size from DTS
Saves 20ms per port of boot time.
Signed-off-by: Ondrej Jirman <megous@megous.com>
---
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 a3a0154da567..9c00d7504734 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -522,6 +522,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 66374704747e..0437bf89388a 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -852,6 +852,9 @@ static int size_fifo(struct uart_8250_port *up)
unsigned short 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.35.3