From e7aa9493801b23183c20e5e7497fbd17b9dbc736 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 2 Jul 2014 10:40:11 -0600 Subject: [PATCH] SAM3/4 and SAMA5 Ethernet: Fix an error in the function that determines the number of free TX descriptors --- arch/arm/src/sam34/sam_emac.c | 4 ++-- arch/arm/src/sama5/sam_emaca.c | 4 ++-- arch/arm/src/sama5/sam_emacb.c | 5 ++--- arch/arm/src/sama5/sam_gmac.c | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/arch/arm/src/sam34/sam_emac.c b/arch/arm/src/sam34/sam_emac.c index 665e6f0948..2997ad6198 100644 --- a/arch/arm/src/sam34/sam_emac.c +++ b/arch/arm/src/sam34/sam_emac.c @@ -516,7 +516,7 @@ static uint16_t sam_txinuse(struct sam_emac_s *priv) uint32_t txhead32 = (uint32_t)priv->txhead; if ((uint32_t)priv->txtail > txhead32) { - return txhead32 += CONFIG_SAM34_EMAC_NTXBUFFERS; + txhead32 += CONFIG_SAM34_EMAC_NTXBUFFERS; } return (uint16_t)(txhead32 - (uint32_t)priv->txtail); @@ -1251,7 +1251,7 @@ static void sam_txdone(struct sam_emac_s *priv) /* At least one TX descriptor is available. Re-enable RX interrupts. * RX interrupts may previously have been disabled when we ran out of - * TX desciptors (see commits in sam_transmit()). + * TX descriptors (see comments in sam_transmit()). */ sam_putreg(priv, SAM_EMAC_IER, EMAC_INT_RCOMP); diff --git a/arch/arm/src/sama5/sam_emaca.c b/arch/arm/src/sama5/sam_emaca.c index aeecba5278..7e172d97b4 100644 --- a/arch/arm/src/sama5/sam_emaca.c +++ b/arch/arm/src/sama5/sam_emaca.c @@ -521,7 +521,7 @@ static uint16_t sam_txinuse(struct sam_emac_s *priv) uint32_t txhead32 = (uint32_t)priv->txhead; if ((uint32_t)priv->txtail > txhead32) { - return txhead32 += CONFIG_SAMA5_EMAC_NTXBUFFERS; + txhead32 += CONFIG_SAMA5_EMAC_NTXBUFFERS; } return (uint16_t)(txhead32 - (uint32_t)priv->txtail); @@ -1293,7 +1293,7 @@ static void sam_txdone(struct sam_emac_s *priv) /* At least one TX descriptor is available. Re-enable RX interrupts. * RX interrupts may previously have been disabled when we ran out of - * TX desciptors (see commits in sam_transmit()). + * TX descriptors (see comments in sam_transmit()). */ sam_putreg(priv, SAM_EMAC_IER, EMAC_INT_RCOMP); diff --git a/arch/arm/src/sama5/sam_emacb.c b/arch/arm/src/sama5/sam_emacb.c index f3ea86b3a8..7a66be5871 100644 --- a/arch/arm/src/sama5/sam_emacb.c +++ b/arch/arm/src/sama5/sam_emacb.c @@ -843,7 +843,7 @@ static uint16_t sam_txinuse(struct sam_emac_s *priv) uint32_t txhead32 = (uint32_t)priv->txhead; if ((uint32_t)priv->txtail > txhead32) { - return txhead32 += priv->attr->ntxbuffers; + txhead32 += priv->attr->ntxbuffers; } return (uint16_t)(txhead32 - (uint32_t)priv->txtail); @@ -1259,7 +1259,6 @@ static int sam_recvframe(struct sam_emac_s *priv) cp15_invalidate_dcache((uintptr_t)rxdesc, (uintptr_t)rxdesc + sizeof(struct emac_rxdesc_s)); - nllvdbg("rxndx: %d\n", rxndx); while ((rxdesc->addr & EMACRXD_ADDR_OWNER) != 0) @@ -1615,7 +1614,7 @@ static void sam_txdone(struct sam_emac_s *priv) /* At least one TX descriptor is available. Re-enable RX interrupts. * RX interrupts may previously have been disabled when we ran out of - * TX descriptors (see commits in sam_transmit()). + * TX descriptors (see comments in sam_transmit()). */ sam_putreg(priv, SAM_EMAC_IER_OFFSET, EMAC_INT_RCOMP); diff --git a/arch/arm/src/sama5/sam_gmac.c b/arch/arm/src/sama5/sam_gmac.c index 25c6741d7a..0d1f4f8c9d 100644 --- a/arch/arm/src/sama5/sam_gmac.c +++ b/arch/arm/src/sama5/sam_gmac.c @@ -452,7 +452,7 @@ static uint16_t sam_txinuse(struct sam_gmac_s *priv) uint32_t txhead32 = (uint32_t)priv->txhead; if ((uint32_t)priv->txtail > txhead32) { - return txhead32 += CONFIG_SAMA5_GMAC_NTXBUFFERS; + txhead32 += CONFIG_SAMA5_GMAC_NTXBUFFERS; } return (uint16_t)(txhead32 - (uint32_t)priv->txtail); @@ -1221,7 +1221,7 @@ static void sam_txdone(struct sam_gmac_s *priv) /* At least one TX descriptor is available. Re-enable RX interrupts. * RX interrupts may previously have been disabled when we ran out of - * TX desciptors (see commits in sam_transmit()). + * TX descriptors (see comments in sam_transmit()). */ sam_putreg(priv, SAM_GMAC_IER, GMAC_INT_RCOMP);