summaryrefslogtreecommitdiff
path: root/drivers/serial
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2020-01-25 12:04:59 -0500
committerTom Rini <[email protected]>2020-01-25 12:04:59 -0500
commitd31dd3b596190bdecbd109e404f16bd208fe32ba (patch)
treed862bd67736079799b474d876f38b75032ade5b6 /drivers/serial
parent2c871f9e084b2c03d1961884228a6901387ab8d6 (diff)
parent683b7c2a170a71bded99bb9e7dfd26372427ca1c (diff)
Merge branch '2020-01-24-master-imports'
- Enable fastboot on some MediaTek platforms - DMA enchancements - Assorted bugfixes
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/ns16550.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index a92d2b1de88..9851663dc54 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -171,6 +171,13 @@ void NS16550_init(NS16550_t com_port, int baud_divisor)
== UART_LSR_THRE) {
if (baud_divisor != -1)
NS16550_setbrg(com_port, baud_divisor);
+ else {
+ // Re-use old baud rate divisor to flush transmit reg.
+ const int dll = serial_in(&com_port->dll);
+ const int dlm = serial_in(&com_port->dlm);
+ const int divisor = dll | (dlm << 8);
+ NS16550_setbrg(com_port, divisor);
+ }
serial_out(0, &com_port->mdr1);
}
#endif