linux/drivers/net/ethernet/freescale
Andrew Lunn 790ab249b5 net: ethernet: fec: Prevent MII event after MII_SPEED write
The change to polled IO for MDIO completion assumes that MII events
are only generated for MDIO transactions. However on some SoCs writing
to the MII_SPEED register can also trigger an MII event. As a result,
the next MDIO read has a pending MII event, and immediately reads the
data registers before it contains useful data. When the read does
complete, another MII event is posted, which results in the next read
also going wrong, and the cycle continues.

By writing 0 to the MII_DATA register before writing to the speed
register, this MII event for the MII_SPEED is suppressed, and polled
IO works as expected.

Fixes: 29ae6bd1b0 ("net: ethernet: fec: Replace interrupt driven MDIO with polled IO")
Reported-by: Andy Duan <fugang.duan@nxp.com>
Suggested-by: Andy Duan <fugang.duan@nxp.com>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-04-28 14:33:19 -07:00
..
dpaa dpaa_eth: Make dpaa_a050385_wa static 2020-03-30 10:53:09 -07:00
dpaa2 dpaa2-eth: Use proper division helper in dpaa2_dbg_ch_show 2020-04-28 14:31:43 -07:00
enetc enetc: permit configuration of rx-vlan-filter with ethtool 2020-04-18 15:55:05 -07:00
fman Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
fs_enet net/freescale: Clean drivers from static versions 2020-03-03 17:54:55 -08:00
fec_main.c net: ethernet: fec: Prevent MII event after MII_SPEED write 2020-04-28 14:33:19 -07:00
fec_mpc52xx_phy.c
fec_mpc52xx.c net: convert suitable network drivers to use phy_do_ioctl 2020-01-21 10:50:41 +01:00
fec_mpc52xx.h
fec_ptp.c net: fec_ptp: Use platform_get_irq_xxx_optional() to avoid error message 2019-10-29 17:57:16 -07:00
fec.h net: ethernet: fec: Replace interrupt driven MDIO with polled IO 2020-04-20 12:37:07 -07:00
fsl_pq_mdio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
gianfar_ethtool.c net: gianfar: reject unsupported coalescing params 2020-03-12 11:32:35 -07:00
gianfar.c net/freescale: Clean drivers from static versions 2020-03-03 17:54:55 -08:00
gianfar.h net/freescale: Clean drivers from static versions 2020-03-03 17:54:55 -08:00
Kconfig net: ethernet: freescale: make UCC_GETH explicitly depend on PPC32 2019-12-09 13:59:03 -06:00
Makefile net: dsa: felix: fix link error 2020-01-08 16:05:54 -08:00
ucc_geth_ethtool.c net/freescale: Don't set zero if FW not-available in ucc_geth 2020-03-03 17:54:55 -08:00
ucc_geth.c net/freescale: Clean drivers from static versions 2020-03-03 17:54:55 -08:00
ucc_geth.h net/freescale: Clean drivers from static versions 2020-03-03 17:54:55 -08:00
xgmac_mdio.c net/fsl: treat fsl,erratum-a011043 2020-01-23 21:17:13 +01:00