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);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to