Message ID | 1479260427-17394-1-git-send-email-andre.przywara@arm.com |
---|---|
State | Accepted |
Commit | 1deeecb6e41a42d0e24fec30d2bb74c56d7a0d9b |
Delegated to: | Jagannadha Sutradharudu Teki |
Headers | show |
On Wed, Nov 16, 2016 at 7:10 AM, Andre Przywara <andre.przywara@arm.com> wrote: > From: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> > > To send a parametrized command to the PHY over MDIO, we should write > the data first, the trigger the execution by the command register > write. Fix the access pattern in our MDIO write routine. > Apparently this doesn't really matter with the Realtek PHY on the > Pine64, but other PHYs (which require more setup) will choke on > the wrong order. Any tested-by this on non-realtek, because I always remember to have CMD with DATA sequence for mdio write for most of the PHY's and ie default sequence though. thanks!
Jagan, > On 25 Nov 2016, at 17:18, Jagan Teki <jagan@openedev.com> wrote: > > On Wed, Nov 16, 2016 at 7:10 AM, Andre Przywara <andre.przywara@arm.com> wrote: >> From: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> >> >> To send a parametrized command to the PHY over MDIO, we should write >> the data first, the trigger the execution by the command register >> write. Fix the access pattern in our MDIO write routine. >> Apparently this doesn't really matter with the Realtek PHY on the >> Pine64, but other PHYs (which require more setup) will choke on >> the wrong order. > > Any tested-by this on non-realtek, because I always remember to have > CMD with DATA sequence for mdio write for most of the PHY's and ie > default sequence though. We have a KSZ9031 on all our boards… so it was tested against the KSZ9031. Cheers, Philipp.
On Fri, Nov 25, 2016 at 9:50 PM, Dr. Philipp Tomsich <philipp.tomsich@theobroma-systems.com> wrote: > Jagan, > >> On 25 Nov 2016, at 17:18, Jagan Teki <jagan@openedev.com> wrote: >> >> On Wed, Nov 16, 2016 at 7:10 AM, Andre Przywara <andre.przywara@arm.com> wrote: >>> From: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> >>> >>> To send a parametrized command to the PHY over MDIO, we should write >>> the data first, the trigger the execution by the command register >>> write. Fix the access pattern in our MDIO write routine. >>> Apparently this doesn't really matter with the Realtek PHY on the >>> Pine64, but other PHYs (which require more setup) will choke on >>> the wrong order. >> >> Any tested-by this on non-realtek, because I always remember to have >> CMD with DATA sequence for mdio write for most of the PHY's and ie >> default sequence though. > > We have a KSZ9031 on all our boards… so it was tested against the KSZ9031. Applied to u-boot-spi/sunxi thanks!
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index 6ac8ba3..abd9cc8 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -180,8 +180,8 @@ static int sun8i_mdio_write(struct mii_dev *bus, int addr, int devad, int reg, miiaddr |= MDIO_CMD_MII_WRITE; miiaddr |= MDIO_CMD_MII_BUSY; - writel(miiaddr, priv->mac_reg + EMAC_MII_CMD); writel(val, priv->mac_reg + EMAC_MII_DATA); + writel(miiaddr, priv->mac_reg + EMAC_MII_CMD); start = get_timer(0); while (get_timer(start) < timeout) {