summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorIan Abbott <abbotti@mev.co.uk>2016-11-07 18:16:23 +0000
committerSascha Hauer <s.hauer@pengutronix.de>2016-11-09 09:09:14 +0100
commit184ef5a1ffd43f02c3250c1e32fe9324acd9ece8 (patch)
treefc4948bee4531e3d3e68843e18a1be62e354da29 /drivers/net
parentb0fabc529711c650ded7afff47a9569395a77e61 (diff)
downloadbarebox-184ef5a1ffd43f02c3250c1e32fe9324acd9ece8.tar.gz
barebox-184ef5a1ffd43f02c3250c1e32fe9324acd9ece8.tar.xz
net: designware: Respect "bus mode" register contents on SW reset
"bus mode" register contains lots of fields and some of them don't expect to be written with 0 (zero). So since we're only interested in resetting MAC (which is done with setting the least significant bit of this register with "0") I believe it's better to modify only 1 bit of the register. [Original U-Boot patch by Alexey Brodkin <abrodkin@synopsys.com>] Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/designware.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 85e4c586e0..6702d4c4af 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -128,7 +128,7 @@ static int mac_reset(struct eth_device *dev)
struct eth_dma_regs *dma_p = priv->dma_regs_p;
u64 start;
- writel(DMAMAC_SRST, &dma_p->busmode);
+ writel(readl(&dma_p->busmode) | DMAMAC_SRST, &dma_p->busmode);
if (priv->interface != PHY_INTERFACE_MODE_RGMII)
writel(MII_PORTSELECT, &mac_p->conf);