diff options
author | Alexey Brodkin <Alexey.Brodkin@synopsys.com> | 2014-01-13 13:28:38 +0400 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-02-07 09:16:26 -0500 |
commit | 74cb708d5853854d28547b917d4b8a5588ee7324 (patch) | |
tree | 1dcce360febe1b48f13640bca350cb503009441a /drivers | |
parent | bde237368adb421a39c418ee57c7bd9c330a2ef9 (diff) | |
download | u-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')
-rw-r--r-- | drivers/net/designware.c | 2 |
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) |