Date: Sat, 31 Oct 2020 15:58:06 +0000 (UTC) From: Michal Meloun <mmel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r367215 - stable/12/sys/arm/nvidia Message-ID: <202010311558.09VFw6Eq017191@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mmel Date: Sat Oct 31 15:58:05 2020 New Revision: 367215 URL: https://svnweb.freebsd.org/changeset/base/367215 Log: MFC r362053: 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. Modified: stable/12/sys/arm/nvidia/tegra_uart.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/nvidia/tegra_uart.c ============================================================================== --- stable/12/sys/arm/nvidia/tegra_uart.c Sat Oct 31 15:40:52 2020 (r367214) +++ stable/12/sys/arm/nvidia/tegra_uart.c Sat Oct 31 15:58:05 2020 (r367215) @@ -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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010311558.09VFw6Eq017191>