summaryrefslogtreecommitdiff
path: root/drivers/net/sun8i_emac.c
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2020-07-06 01:40:33 +0100
committerJagan Teki <jagan@amarulasolutions.com>2020-10-21 23:42:36 +0530
commitc35380c756a607f857b57aaaf93c53648ca10e9e (patch)
tree590632f0c1256d1b91f49b01413a6049dfc1e1b0 /drivers/net/sun8i_emac.c
parent2808cf6c60b5484296651e23066c4b36594f0240 (diff)
net: sun8i_emac: Don't hand out TX descriptor too early
When initialising the TX DMA descriptors, we mostly chain them up, but of course don't know about any data or its length yet. That means they are still invalid, and the OWN bit should NOT be set yet. In fact when we later tell the MAC about the beginning of the chain, and enable TX DMA in the start() routine, the MAC will start fetching TX descriptors prematurely, as it can be seen by dumping the TX_DMA_STA and TX_DMA_CUR_DESC registers. Clear the owner bit, to not give the MAC the wrong illusion that it owns the descriptors already. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Maxime Ripard <mripard@kernel.org> Tested-by: Amit Singh Tomar <amittomer25@gmail.com> # Pine64+ Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Diffstat (limited to 'drivers/net/sun8i_emac.c')
-rw-r--r--drivers/net/sun8i_emac.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c
index ddbcf26347..9f31e6de6c 100644
--- a/drivers/net/sun8i_emac.c
+++ b/drivers/net/sun8i_emac.c
@@ -415,7 +415,7 @@ static void tx_descs_init(struct emac_eth_dev *priv)
desc_p->buf_addr = (uintptr_t)&txbuffs[idx * CONFIG_ETH_BUFSIZE]
;
desc_p->next = (uintptr_t)&desc_table_p[idx + 1];
- desc_p->status = (1 << 31);
+ desc_p->status = 0;
desc_p->st = 0;
}