summaryrefslogtreecommitdiff
path: root/drivers/net/kirkwood_egiga.c
diff options
context:
space:
mode:
authorSimon Kagstrom <simon.kagstrom@netinsight.net>2009-07-08 13:05:11 +0200
committerBen Warren <biggerbadderben@gmail.com>2009-07-22 22:53:45 -0700
commit16025ea45539219f2a7c750c6f0ae983ea5c2737 (patch)
treeaf0a7527446c7371f098ad2b92291ca3e9d2164e /drivers/net/kirkwood_egiga.c
parent7b05f5e027b81cd3a9a41c6c6d3fe09c72fa93f6 (diff)
downloadu-boot-imx-16025ea45539219f2a7c750c6f0ae983ea5c2737.zip
u-boot-imx-16025ea45539219f2a7c750c6f0ae983ea5c2737.tar.gz
u-boot-imx-16025ea45539219f2a7c750c6f0ae983ea5c2737.tar.bz2
arm: Kirkwood: Check the error summary bit for error detection
The Marvell documentation for the 88f6281 states that the error coding is only valid if the error summary and last frame bits in the transmit descriptor status field are set. This patch adds checks for these for transmit (I would get transmit errors on bootp with the current check, which I believe are spurious). Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'drivers/net/kirkwood_egiga.c')
-rw-r--r--drivers/net/kirkwood_egiga.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c
index 77c7a84..701812b 100644
--- a/drivers/net/kirkwood_egiga.c
+++ b/drivers/net/kirkwood_egiga.c
@@ -511,7 +511,9 @@ static int kwgbe_send(struct eth_device *dev, volatile void *dataptr,
cmd_sts = readl(&p_txdesc->cmd_sts);
while (cmd_sts & KWGBE_BUFFER_OWNED_BY_DMA) {
/* return fail if error is detected */
- if (cmd_sts & (KWGBE_UR_ERROR | KWGBE_RL_ERROR)) {
+ if ((cmd_sts & (KWGBE_ERROR_SUMMARY | KWGBE_TX_LAST_FRAME)) ==
+ (KWGBE_ERROR_SUMMARY | KWGBE_TX_LAST_FRAME) &&
+ cmd_sts & (KWGBE_UR_ERROR | KWGBE_RL_ERROR)) {
printf("Err..(%s) in xmit packet\n", __FUNCTION__);
return -1;
}