diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/freescale/xgmac_mdio.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/xgmac_mdio.c b/drivers/net/ethernet/freescale/xgmac_mdio.c index 2263477..dca1325 100644 --- a/drivers/net/ethernet/freescale/xgmac_mdio.c +++ b/drivers/net/ethernet/freescale/xgmac_mdio.c @@ -19,6 +19,9 @@ #include <linux/mdio.h> #include <linux/of_platform.h> #include <linux/of_mdio.h> +#ifdef CONFIG_FMAN_V3L +#include <asm/mpc85xx.h> +#endif /* Number of microseconds to wait for a register to respond */ #define TIMEOUT 1000 @@ -180,6 +183,12 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum) return ret; } +#ifdef CONFIG_FMAN_V3L + /* Fixup for RTL8211F MDIO timing delay on T1023RDB */ + if (SVR_SOC_VER(mfspr(SPRN_SVR)) == SVR_T1023) + udelay(50); +#endif + /* Initiate the read */ out_be32(®s->mdio_ctl, mdio_ctl | MDIO_CTL_READ); |