ARM: imx: stop adjusting ar8031 phy tx delay
authorAndré Draszik <git@andred.net>
Fri, 9 Aug 2019 03:12:56 +0000 (04:12 +0100)
committerShawn Guo <shawnguo@kernel.org>
Sat, 24 Aug 2019 18:30:22 +0000 (20:30 +0200)
Recent changes to the Atheros at803x driver cause
the approach taken here to stop working because
commit 6d4cd041f0af
("net: phy: at803x: disable delay only for RGMII mode")
and commit cd28d1d6e52e
("net: phy: at803x: Disable phy delay for RGMII mode")
fix the AR8031 driver to configure the phy's (RX/TX)
delays as per the 'phy-mode' in the device tree.

In particular, the phy tx (and rx) delays are updated
again as per the 'phy-mode' *after* the code in here
runs.

Things worked before above commits, because the AR8031
comes out of reset with RX delay enabled, and the
at803x driver didn't touch the delay configuration at
all when "rgmii" mode was selected.

It appears the code in here tries to make device
trees work that incorrectly specify "rgmii", but
that can't work any more and it is imperative since
above commits to have the phy-mode configured
correctly in the device tree.

I suspect there are a few imx7d based boards using
the ar8031 phy and phy-mode = "rgmii", but given I
don't know which ones exactly, I am not in a
position to update the respective device trees.

Hence this patch is simply removing the superfluous
code from the imx7d initialisation. An alternative
could be to add a warning instead, but that would
penalize all boards that have been updated already.

Signed-off-by: André Draszik <git@andred.net>
CC: Russell King <linux@armlinux.org.uk>
CC: Shawn Guo <shawnguo@kernel.org>
CC: Sascha Hauer <s.hauer@pengutronix.de>
CC: Pengutronix Kernel Team <kernel@pengutronix.de>
CC: Fabio Estevam <festevam@gmail.com>
CC: NXP Linux Team <linux-imx@nxp.com>
CC: Kate Stewart <kstewart@linuxfoundation.org>
CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Leonard Crestez <leonard.crestez@nxp.com>
CC: linux-arm-kernel@lists.infradead.org
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/mach-imx/mach-imx7d.c

index 95713450591ae7acc98c18768f93118aeff2c088..ebb27592a9f754cce32cb15bb7a86938e5896843 100644 (file)
@@ -30,12 +30,6 @@ static int ar8031_phy_fixup(struct phy_device *dev)
        val &= ~(0x1 << 8);
        phy_write(dev, 0xe, val);
 
-       /* introduce tx clock delay */
-       phy_write(dev, 0x1d, 0x5);
-       val = phy_read(dev, 0x1e);
-       val |= 0x0100;
-       phy_write(dev, 0x1e, val);
-
        return 0;
 }