diff options
author | Ian Abbott <abbotti@mev.co.uk> | 2016-11-07 18:16:23 +0000 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-11-09 09:09:14 +0100 |
commit | 184ef5a1ffd43f02c3250c1e32fe9324acd9ece8 (patch) | |
tree | fc4948bee4531e3d3e68843e18a1be62e354da29 /drivers/net | |
parent | b0fabc529711c650ded7afff47a9569395a77e61 (diff) | |
download | barebox-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.c | 2 |
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); |