diff options
author | Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | 2015-04-10 03:01:52 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-04-13 08:42:30 +0200 |
commit | a60d04c247ee8020e63d102d5543d9ac9d3d93be (patch) | |
tree | 4d0de819701959b24734f36b1e445288e44be16c /drivers | |
parent | da440ab85970108761a090f676b1ad48ed3cfade (diff) | |
download | barebox-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.c | 2 |
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; |