Messages in this thread | | | Subject | Re: [PATCH v2 1/2] net: ethernet: bgmac: init sequence bug | From | Rafał Miłecki <> | Date | Fri, 3 Feb 2017 22:41:48 +0100 |
| |
On 02/03/2017 10:08 PM, Jon Mason wrote: > @@ -61,15 +60,20 @@ static bool platform_bgmac_clk_enabled(struct bgmac *bgmac) > > static void platform_bgmac_clk_enable(struct bgmac *bgmac, u32 flags) > { > - bgmac_idm_write(bgmac, BCMA_IOCTL, > - (BCMA_IOCTL_CLK | BCMA_IOCTL_FGC | flags)); > + u32 val; > + > + val = bgmac_idm_read(bgmac, BCMA_IOCTL); > + /* Some bits of BCMA_IOCTL set by HW/ATF and should not change */ > + val |= flags & ~(BGMAC_AWCACHE | BGMAC_ARCACHE | BGMAC_AWUSER | > + BGMAC_ARUSER); > + val |= BGMAC_CLK_EN; > bgmac_idm_read(bgmac, BCMA_IOCTL);
This read was previously following write op most likely to flush it or something. I don't think it makes any sense to read after read.
| |