Commit 74cb708d authored by Alexey Brodkin's avatar Alexey Brodkin Committed by Tom Rini
Browse files

net/designware: add explicit reset of {tx|rx}_currdescnum

Driver "init" function might be called multiple times.
On every "init" Tx/Rx buffer descriptors are initialized: "descs_init"
-> "{tx|rx}_descs_init".

In its turn those init functions set MAC's "{tx|rx}desclistaddr" to
point on the first buffer descriptor in the list.

So CPU to start operation from the first buffer descriptor as well after
every "init" we have to reset "{tx|rx}_currdescnum".

Cc: Joe Hershberger <>
Cc: Vipin Kumar <>
Cc: Stefan Roese <>
Cc: Mischa Jonker <>
Signed-off-by: default avatarAlexey Brodkin <>
parent bde23736
......@@ -52,6 +52,7 @@ static void tx_descs_init(struct eth_device *dev)
desc_p->dmamac_next = &desc_table_p[0];
writel((ulong)&desc_table_p[0], &dma_p->txdesclistaddr);
priv->tx_currdescnum = 0;
static void rx_descs_init(struct eth_device *dev)
......@@ -79,6 +80,7 @@ static void rx_descs_init(struct eth_device *dev)
desc_p->dmamac_next = &desc_table_p[0];
writel((ulong)&desc_table_p[0], &dma_p->rxdesclistaddr);
priv->rx_currdescnum = 0;
static void descs_init(struct eth_device *dev)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment