PERFORCE change 100083 for review
Warner Losh
imp at FreeBSD.org
Mon Jun 26 19:40:52 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=100083
Change 100083 by imp at imp_lighthouse on 2006/06/26 19:08:07
Mask out all interrupts when we initialize for console use.
Start to sort out the interrupt enable/disable mess. TXRDY appears
to be level rather than edge in its nature.
Affected files ...
.. //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#25 edit
Differences ...
==== //depot/projects/arm/src/sys/arm/at91/uart_dev_at91usart.c#25 (text+ko) ====
@@ -212,13 +212,14 @@
cr = USART_CR_RSTSTA | USART_CR_RSTRX | USART_CR_RSTTX;
WR4(bas, USART_CR, cr);
WR4(bas, USART_CR, USART_CR_RXEN | USART_CR_TXEN);
+ WR4(bas, USART_IDR, 0xffffffff);
#if 0
WR4(bas, USART_IER, USART_CSR_TIMEOUT |
USART_CSR_TXRDY | USART_CSR_RXRDY |
USART_CSR_RXBRK | USART_CSR_ENDRX | USART_CSR_ENDTX);
-#endif
/* Set the receive timeout to be 1.5 character times. */
WR4(bas, USART_RTOR, 12);
+#endif
}
/*
@@ -336,9 +337,11 @@
WR4(&sc->sc_bas, USART_CR, cr);
WR4(&sc->sc_bas, USART_CR, USART_CR_RXEN | USART_CR_TXEN);
WR4(&sc->sc_bas, USART_IDR, 0xffffffff);
+#if 0
WR4(&sc->sc_bas, USART_IER, USART_CSR_TIMEOUT |
USART_CSR_TXRDY | USART_CSR_RXRDY |
USART_CSR_RXBRK | USART_CSR_ENDRX | USART_CSR_ENDTX);
+#endif
/* Set the receive timeout to be 1.5 character times. */
WR4(&sc->sc_bas, USART_RTOR, 12);
errout:;
@@ -383,6 +386,7 @@
WR4(&sc->sc_bas, PDC_TPR, addr);
WR4(&sc->sc_bas, PDC_TCR, sc->sc_txdatasz);
WR4(&sc->sc_bas, PDC_PTCR, PDC_PTCR_TXTEN);
+ WR4(&sc->sc_bas, USART_IER, USART_CSR_TXRDY);
uart_unlock(sc->sc_hwmtx);
if (device_get_unit(sc->sc_dev))
device_printf(sc->sc_dev, "transmit %d bytes\n", sc->sc_txdatasz);
@@ -460,8 +464,10 @@
bus_dmamap_unload(atsc->dmatag, atsc->tx_map);
}
uart_lock(sc->sc_hwmtx);
- if (csr & USART_CSR_TXRDY && sc->sc_txbusy)
+ if (csr & USART_CSR_TXRDY && sc->sc_txbusy) {
ipend |= SER_INT_TXIDLE;
+ WR4(&sc->sc_bas, USART_IDR, USART_CSR_TXRDY);
+ }
if (csr & USART_CSR_ENDTX && sc->sc_txbusy)
ipend |= SER_INT_TXIDLE;
if (csr & (USART_CSR_RXRDY /* | USART_CSR_ENDRX | USART_CSR_TIMEOUT */))
More information about the p4-projects
mailing list