linux/drivers/net/ethernet
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
..
3com drivers: Remove inclusion of vermagic header 2020-04-21 13:27:37 -07:00
8390
adaptec drivers: Remove inclusion of vermagic header 2020-04-21 13:27:37 -07:00
aeroflex net/aeroflex: Don't assign FW if it is not available 2020-02-24 11:23:37 -08:00
agere net/agere: Delete unneeded driver version 2020-02-24 11:23:37 -08:00
alacritech net/alacritech: Delete driver version 2020-02-24 11:23:37 -08:00
allwinner net/allwinner: Remove driver version 2020-02-24 11:23:37 -08:00
alteon net/alteon: Properly report FW version 2020-02-24 11:23:37 -08:00
altera net/althera: Delete hardcoded driver version 2020-02-24 11:23:37 -08:00
amazon net: ena: Make some functions static 2020-03-30 10:53:40 -07:00
amd amd-xgbe: Use __napi_schedule() in BH context 2020-04-16 13:59:53 -07:00
apm net/apm: Properly mark absence of FW 2020-02-24 11:24:47 -08:00
apple
aquantia net: atlantic: Remove unneeded semicolon 2020-04-24 16:56:59 -07:00
arc net/arc: Delete driver version 2020-02-24 11:24:47 -08:00
atheros net: ag71xx: extend link validation to support other SoCs 2020-04-27 10:09:21 -07:00
aurora net: convert additional drivers to use phy_do_ioctl 2020-01-22 21:16:32 +01:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-04-25 20:18:53 -07:00
brocade net: bna: reject unsupported coalescing params 2020-03-10 16:28:53 -07:00
cadence net: macb: Fix handling of fixed-link node 2020-03-31 10:06:27 -07:00
calxeda
cavium liquidio: remove unused inline functions 2020-04-25 20:42:57 -07:00
chelsio cxgb4: fix adapter crash due to wrong MC size 2020-04-23 12:41:09 -07:00
cirrus net/cirrus: Delete driver version 2020-03-03 17:54:54 -08:00
cisco enic: let core reject the unsupported coalescing parameters 2020-03-05 12:12:34 -08:00
cortina net: gemini: reject unsupported coalescing params 2020-03-10 16:28:53 -07:00
davicom net/davicom: Delete ethtool version assignment 2020-03-03 17:54:54 -08:00
dec net: tulip: make early_486_chipsets static 2020-04-15 16:22:14 -07:00
dlink net/dlink: Remove driver version and release date 2020-03-03 17:54:54 -08:00
emulex net: be2net: reject unsupported coalescing params 2020-03-12 11:32:35 -07:00
ezchip
faraday net/faraday: fix grammar in function ftgmac100_setup_clk() in ftgmac100.c 2020-04-01 11:23:45 -07:00
freescale net: ethernet: fec: Prevent MII event after MII_SPEED write 2020-04-28 14:33:19 -07:00
fujitsu
google
hisilicon net: hns3: remove an unnecessary check in hclge_set_umv_space() 2020-04-25 20:56:45 -07:00
huawei hinic: add net_device_ops associated with vf 2020-04-25 20:46:28 -07:00
i825xx Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-12 22:34:48 -07:00
intel Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-04-25 20:18:53 -07:00
marvell octeontx2-pf: Remove unneeded semicolon 2020-04-25 20:36:02 -07:00
mediatek net: ethernet: mediatek: move mt7623 settings out off the mt7530 2020-04-07 18:28:28 -07:00
mellanox mlxsw: spectrum: Move flow offload binding into spectrum_flow.c 2020-04-27 12:43:29 -07:00
micrel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2020-03-29 21:25:29 -07:00
microchip
moxa
mscc net: mscc: ocelot: lift protocol restriction for flow_match_eth_addrs keys 2020-04-22 11:40:51 -07:00
myricom net: myri10ge: reject unsupported coalescing params 2020-03-14 21:13:54 -07:00
natsemi net/macsonic: Remove interrupt handler wrapper 2020-02-16 19:48:22 -08:00
neterion net: neterion: remove redundant assignment to variable tmp64 2020-04-12 11:44:02 -07:00
netronome net/nfp: Update driver to use global kernel version 2020-04-21 13:27:37 -07:00
ni net: nixge: let core reject the unsupported coalescing parameters 2020-03-14 21:13:54 -07:00
nvidia
nxp net: convert suitable drivers to use phy_do_ioctl_running 2020-01-23 10:49:30 +01:00
oki-semi
packetengines
pasemi
pensando drivers: Remove inclusion of vermagic header 2020-04-21 13:27:37 -07:00
qlogic qlcnic: remove unused inline function qlcnic_hw_write_wx_2M 2020-04-25 20:42:57 -07:00
qualcomm net: qualcomm: rmnet: Allow configuration updates to existing devices 2020-04-02 06:50:04 -07:00
rdc net: convert suitable network drivers to use phy_do_ioctl 2020-01-21 10:50:41 +01:00
realtek r8169: improve error message if no dedicated PHY driver is found 2020-04-27 13:25:13 -07:00
renesas sh_eth: use Gigabit register map for R7S72100 2020-02-16 19:44:41 -08:00
rocker
samsung net: sxgbe: reject unsupported coalescing params 2020-03-14 21:13:55 -07:00
seeq
sfc sfc: falcon: convert to use i2c_new_client_device() 2020-03-26 19:31:21 -07:00
sgi net: meth: remove spurious copyright text 2020-04-23 15:59:43 -07:00
silan
sis
smsc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
socionext net: socionext: reject unsupported coalescing params 2020-03-17 20:56:57 -07:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-04-25 20:18:53 -07:00
sun net: sun: Remove unneeded cast from memory allocation 2020-04-20 12:21:21 -07:00
synopsys net: dwc-xlgmac: let core reject the unsupported coalescing parameters 2020-03-17 20:56:57 -07:00
tehuti net: tehuti: reject unsupported coalescing params 2020-03-17 20:56:57 -07:00
ti net: ethernet: ti: fix return value check in k3_cppi_desc_pool_create_name() 2020-04-27 13:27:59 -07:00
toshiba toshiba: Replace zero-length array with flexible-array member 2020-02-24 15:26:17 -08:00
tundra
via net: via: reject unsupported coalescing params 2020-03-14 21:13:55 -07:00
wiznet
xilinx net: axienet: Allow DMA to beyond 4GB 2020-03-24 16:33:05 -07:00
xircom
xscale net: ethernet: ixp4xx: Add error handling in ixp4xx_eth_probe() 2020-04-23 15:32:45 -07:00
dnet.c net: ethernet: dnet: convert to devm_platform_get_and_ioremap_resource 2020-04-20 12:18:13 -07:00
dnet.h net/dnet: Delete static version from the driver 2020-03-03 17:54:55 -08:00
ec_bhf.c
ethoc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
fealnx.c net/fealnx: Delete driver version 2020-03-03 17:54:55 -08:00
jme.c net: jme: reject unsupported coalescing params 2020-03-14 21:13:54 -07:00
jme.h
Kconfig
korina.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
lantiq_etop.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
lantiq_xrx200.c
Makefile