Author: imp Date: Sun Jan 26 04:57:58 2014 New Revision: 261180 URL: http://svnweb.freebsd.org/changeset/base/261180
Log: Before resetting the USART, delay a bit to allow the transmitter to finish the current character to drain to avoid glitching. Also, simplify the code a smidge. Modified: head/sys/arm/at91/uart_dev_at91usart.c Modified: head/sys/arm/at91/uart_dev_at91usart.c ============================================================================== --- head/sys/arm/at91/uart_dev_at91usart.c Sun Jan 26 02:41:00 2014 (r261179) +++ head/sys/arm/at91/uart_dev_at91usart.c Sun Jan 26 04:57:58 2014 (r261180) @@ -421,7 +421,6 @@ at91_usart_bus_attach(struct uart_softc { int err; int i; - uint32_t cr; struct at91_usart_softc *atsc; atsc = (struct at91_usart_softc *)sc; @@ -490,8 +489,8 @@ at91_usart_bus_attach(struct uart_softc } /* Turn on rx and tx */ - cr = USART_CR_RSTSTA | USART_CR_RSTRX | USART_CR_RSTTX; - WR4(&sc->sc_bas, USART_CR, cr); + DELAY(1000); /* Give pending character a chance to drain. */ + WR4(&sc->sc_bas, USART_CR, USART_CR_RSTSTA | USART_CR_RSTRX | USART_CR_RSTTX); WR4(&sc->sc_bas, USART_CR, USART_CR_RXEN | USART_CR_TXEN); /* _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"