Date: Thu, 11 Jun 2020 12:53:22 +0000 (UTC) From: Michal Meloun <mmel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r362053 - head/sys/arm/nvidia Message-ID: <202006111253.05BCrMn7055682@repo.freebsd.org>
index | next in thread | raw e-mail
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);home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202006111253.05BCrMn7055682>
