aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuseppe CAVALLARO <peppe.cavallaro@st.com>2011-04-10 23:16:46 +0000
committerDavid S. Miller <davem@davemloft.net>2011-04-11 12:55:48 -0700
commita08070acd43a76069ab20000cd02474369506add (patch)
tree9f09417e2ea3c623250b9598b7ff8752654acbd4
parentf66ffe285939559d2a6f630a36f676d7c056b99d (diff)
downloadkernel_samsung_smdk4412-a08070acd43a76069ab20000cd02474369506add.zip
kernel_samsung_smdk4412-a08070acd43a76069ab20000cd02474369506add.tar.gz
kernel_samsung_smdk4412-a08070acd43a76069ab20000cd02474369506add.tar.bz2
stmmac: fix Transmit Underflow error
On some old MAC chips without COE sometime the Transmit Underflow error is issued. The driver aborted all the transmission process and initialized it from scratch. This breaks the network activity as raised by Nachiketa on a SPEAr board. The patch is to fix this rare underflow event. The driver will only clear the interrupt and the Tx DMA will go out the Suspend state as soon as the descriptor is fetched again. The driver will continue to bump-up the DMA FIFO threshold that, indeed, helped somebody to prevent this kind of error in the past as well. Reported-by: Nachiketa Prachanda <nprachanda@ncomputing.com> Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/stmmac/stmmac_main.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/net/stmmac/stmmac_main.c b/drivers/net/stmmac/stmmac_main.c
index 38f7b61..cc973fc 100644
--- a/drivers/net/stmmac/stmmac_main.c
+++ b/drivers/net/stmmac/stmmac_main.c
@@ -750,7 +750,6 @@ static void stmmac_dma_interrupt(struct stmmac_priv *priv)
priv->hw->dma->dma_mode(priv->ioaddr, tc, SF_DMA_MODE);
priv->xstats.threshold = tc;
}
- stmmac_tx_err(priv);
} else if (unlikely(status == tx_hard_error))
stmmac_tx_err(priv);
}