summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>2014-01-13 13:28:38 +0400
committerTom Rini <trini@ti.com>2014-02-07 09:16:26 -0500
commit74cb708d5853854d28547b917d4b8a5588ee7324 (patch)
tree1dcce360febe1b48f13640bca350cb503009441a /drivers/net
parentbde237368adb421a39c418ee57c7bd9c330a2ef9 (diff)
downloadu-boot-imx-74cb708d5853854d28547b917d4b8a5588ee7324.zip
u-boot-imx-74cb708d5853854d28547b917d4b8a5588ee7324.tar.gz
u-boot-imx-74cb708d5853854d28547b917d4b8a5588ee7324.tar.bz2
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 <joe.hershberger@ni.com> Cc: Vipin Kumar <vipin.kumar@st.com> Cc: Stefan Roese <sr@denx.de> Cc: Mischa Jonker <mjonker@synopsys.com> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/designware.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 22155b4..1868089 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -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)