Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/ic For Tegra K1, set IE_RX_TIMEOUT (bit 4) in IER re...
details: https://anonhg.NetBSD.org/src/rev/bcc14b300078
branches: trunk
changeset: 808106:bcc14b300078
user: jmcneill <jmcneill%NetBSD.org@localhost>
date: Mon May 04 22:59:36 2015 +0000
description:
For Tegra K1, set IE_RX_TIMEOUT (bit 4) in IER register. RX_TIMEOUT occurs
when data has been sitting in the Rx FIFO for more than 4 character times
without being read because there is not enough data to reach the trigger
level. With this change, enable FIFO usage for Tegra UARTs.
diffstat:
sys/dev/ic/com.c | 24 ++++++++++++------------
1 files changed, 12 insertions(+), 12 deletions(-)
diffs (80 lines):
diff -r cf4bb7c497e3 -r bcc14b300078 sys/dev/ic/com.c
--- a/sys/dev/ic/com.c Mon May 04 21:29:38 2015 +0000
+++ b/sys/dev/ic/com.c Mon May 04 22:59:36 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: com.c,v 1.335 2015/05/04 20:25:48 macallan Exp $ */
+/* $NetBSD: com.c,v 1.336 2015/05/04 22:59:36 jmcneill Exp $ */
/*-
* Copyright (c) 1998, 1999, 2004, 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: com.c,v 1.335 2015/05/04 20:25:48 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: com.c,v 1.336 2015/05/04 22:59:36 jmcneill Exp $");
#include "opt_com.h"
#include "opt_ddb.h"
@@ -380,7 +380,8 @@
sc->sc_ier = IER_ERXRDY;
if (sc->sc_type == COM_TYPE_PXA2x0)
sc->sc_ier |= IER_EUART | IER_ERXTOUT;
- if (sc->sc_type == COM_TYPE_INGENIC)
+ if (sc->sc_type == COM_TYPE_INGENIC ||
+ sc->sc_type == COM_TYPE_TEGRA)
sc->sc_ier |= IER_ERXTOUT;
CSR_WRITE_1(&sc->sc_regs, COM_REG_IER, sc->sc_ier);
SET(sc->sc_mcr, MCR_DTR | MCR_RTS);
@@ -466,11 +467,6 @@
SET(sc->sc_hwflags, COM_HW_FIFO);
SET(sc->sc_hwflags, COM_HW_NOIEN);
goto fifodelay;
-
- case COM_TYPE_TEGRA:
- sc->sc_fifolen = 1;
- fifo_msg = "Tegra UART, broken fifo";
- goto fifodelay;
}
sc->sc_fifolen = 1;
@@ -818,7 +814,8 @@
if (ISSET(sc->sc_hwflags, COM_HW_CONSOLE)) {
sc->sc_ier = IER_ERXRDY; /* interrupt on break */
if ((sc->sc_type == COM_TYPE_PXA2x0) ||
- (sc->sc_type == COM_TYPE_INGENIC))
+ (sc->sc_type == COM_TYPE_INGENIC) ||
+ (sc->sc_type == COM_TYPE_TEGRA))
sc->sc_ier |= IER_ERXTOUT;
} else
sc->sc_ier = 0;
@@ -900,7 +897,8 @@
if (sc->sc_type == COM_TYPE_PXA2x0)
sc->sc_ier |= IER_EUART | IER_ERXTOUT;
- else if (sc->sc_type == COM_TYPE_INGENIC)
+ else if (sc->sc_type == COM_TYPE_INGENIC ||
+ sc->sc_type == COM_TYPE_TEGRA)
sc->sc_ier |= IER_ERXTOUT;
CSR_WRITE_1(&sc->sc_regs, COM_REG_IER, sc->sc_ier);
@@ -1909,7 +1907,8 @@
if (sc->sc_type == COM_TYPE_PXA2x0)
SET(sc->sc_ier, IER_ERXTOUT);
#endif
- if (sc->sc_type == COM_TYPE_INGENIC)
+ if (sc->sc_type == COM_TYPE_INGENIC ||
+ sc->sc_type == COM_TYPE_TEGRA)
SET(sc->sc_ier, IER_ERXTOUT);
CSR_WRITE_1(&sc->sc_regs, COM_REG_IER,
@@ -2115,7 +2114,8 @@
CLR(sc->sc_ier, IER_ERXRDY|IER_ERXTOUT);
else
#endif
- if (sc->sc_type == COM_TYPE_INGENIC)
+ if (sc->sc_type == COM_TYPE_INGENIC ||
+ sc->sc_type == COM_TYPE_TEGRA)
CLR(sc->sc_ier,
IER_ERXRDY | IER_ERXTOUT);
else
Home |
Main Index |
Thread Index |
Old Index