summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2015-01-27 17:32:36 -0600
committerGregory Nutt <gnutt@nuttx.org>2015-01-27 17:32:36 -0600
commite23fb86f1bd62c454413147795466504eea771bc (patch)
treef4822eafa46e16f8a42515fa3bf55a8515710e57
parentd4a0d16b5bd70e65578898a46d1377f8367a847f (diff)
parenta67f1112b12c9b44a5c816f8a8a3884f900ae8c8 (diff)
downloadnuttx-e23fb86f1bd62c454413147795466504eea771bc.tar.gz
nuttx-e23fb86f1bd62c454413147795466504eea771bc.tar.bz2
nuttx-e23fb86f1bd62c454413147795466504eea771bc.zip
Merge branch 'afunix' of ssh://git.code.sf.net/p/nuttx/git into afunix
-rw-r--r--nuttx/arch/arm/src/tiva/tm4c_ethernet.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/nuttx/arch/arm/src/tiva/tm4c_ethernet.c b/nuttx/arch/arm/src/tiva/tm4c_ethernet.c
index 93d6df9cb..7f63144d8 100644
--- a/nuttx/arch/arm/src/tiva/tm4c_ethernet.c
+++ b/nuttx/arch/arm/src/tiva/tm4c_ethernet.c
@@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/tiva/tm4c_ethernet.c
*
- * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2014-2015 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -2127,22 +2127,24 @@ static int tiva_interrupt(int irq, FAR void *context)
#ifdef CONFIG_NET_NOINTS
uint32_t dmaris;
- /* Disable further Ethernet interrupts. Because Ethernet interrupts are
- * also disabled if the TX timeout event occurs, there can be no race
- * condition here.
- */
-
- up_disable_irq(TIVA_IRQ_ETHCON);
-
- /* Check if a packet transmission just completed. */
+ /* Get the raw interrupt status. */
dmaris = tiva_getreg(TIVA_EMAC_DMARIS);
if (dmaris != 0)
{
+ /* Disable further Ethernet interrupts. Because Ethernet interrupts
+ * are also disabled if the TX timeout event occurs, there can be no
+ * race condition here.
+ */
+
+ up_disable_irq(TIVA_IRQ_ETHCON);
+
+ /* Check if a packet transmission just completed. */
+
if ((dmaris & EMAC_DMAINT_TI) != 0)
{
/* If a TX transfer just completed, then cancel the TX timeout so
- * there will be do race condition between any subsequent timeout
+ * there will be no race condition between any subsequent timeout
* expiration and the deferred interrupt processing.
*/