summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>2015-04-10 03:01:52 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-04-13 08:42:30 +0200
commita60d04c247ee8020e63d102d5543d9ac9d3d93be (patch)
tree4d0de819701959b24734f36b1e445288e44be16c /drivers
parentda440ab85970108761a090f676b1ad48ed3cfade (diff)
downloadbarebox-a60d04c247ee8020e63d102d5543d9ac9d3d93be.tar.gz
barebox-a60d04c247ee8020e63d102d5543d9ac9d3d93be.tar.xz
net: mvneta: Fix transmit errors due to dirty txdesc
Marvell Neta's transmit descriptor (txdesc) is allocated by dma_alloc_coherent() but not zeroed before calling mvneta_send the first time. This can cause spurious transmit errors due to improperly set bits in txdesc's cmd_sts field. Fix initial transmit errors by always writing whole cmd_sts field instead of ORing the bits. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/mvneta.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
index d4c8a2c68d..3be2ec531f 100644
--- a/drivers/net/mvneta.c
+++ b/drivers/net/mvneta.c
@@ -396,7 +396,7 @@ static int mvneta_send(struct eth_device *edev, void *data, int len)
dma_sync_single_for_device((unsigned long)data, len, DMA_TO_DEVICE);
/* Fill the Tx descriptor */
- txdesc->cmd_sts |= MVNETA_TX_L4_CSUM_NOT | MVNETA_TXD_FLZ_DESC;
+ txdesc->cmd_sts = MVNETA_TX_L4_CSUM_NOT | MVNETA_TXD_FLZ_DESC;
txdesc->buf_ptr = (u32)data;
txdesc->byte_cnt = len;