svn commit: r362053 - head/sys/arm/nvidia
Michal Meloun
mmel at FreeBSD.org
Thu Jun 11 12:53:22 UTC 2020
Author: mmel
Date: Thu Jun 11 12:53:22 2020
New Revision: 362053
URL: https://svnweb.freebsd.org/changeset/base/362053
Log:
Fix grabbing of tegra uart.
An attempt to write to FCR register may corrupt transmit FIFO,
so we should wait for the FIFO to be empty before we can modify it.
MFC after: 1 week
Modified:
head/sys/arm/nvidia/tegra_uart.c
Modified: head/sys/arm/nvidia/tegra_uart.c
==============================================================================
--- head/sys/arm/nvidia/tegra_uart.c Thu Jun 11 12:35:00 2020 (r362052)
+++ head/sys/arm/nvidia/tegra_uart.c Thu Jun 11 12:53:22 2020 (r362053)
@@ -102,6 +102,10 @@ tegra_uart_grab(struct uart_softc *sc)
uart_lock(sc->sc_hwmtx);
ier = uart_getreg(bas, REG_IER);
uart_setreg(bas, REG_IER, ier & ns8250->ier_mask);
+
+ while ((uart_getreg(bas, REG_LSR) & LSR_TEMT) == 0)
+ ;
+
uart_setreg(bas, REG_FCR, 0);
uart_barrier(bas);
uart_unlock(sc->sc_hwmtx);
More information about the svn-src-all
mailing list