linux/drivers/net/mdio
Dylan Hung 9dbe33cf37 mdio: aspeed: Fix "Link is Down" issue
The issue happened randomly in runtime.  The message "Link is Down" is
popped but soon it recovered to "Link is Up".

The "Link is Down" results from the incorrect read data for reading the
PHY register via MDIO bus.  The correct sequence for reading the data
shall be:
1. fire the command
2. wait for command done (this step was missing)
3. wait for data idle
4. read data from data register

Cc: stable@vger.kernel.org
Fixes: f160e99462 ("net: phy: Add mdio-aspeed")
Reviewed-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Dylan Hung <dylan_hung@aspeedtech.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/20211125024432.15809-1-dylan_hung@aspeedtech.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-11-25 07:44:42 -08:00
..
acpi_mdio.c net: mdio: Add ACPI support code for mdio 2021-06-11 13:08:53 -07:00
fwnode_mdio.c net: mdiobus: withdraw fwnode_mdbiobus_register 2021-06-25 11:46:29 -07:00
Kconfig MDIO: Kconfig: Specify more IPQ chipset supported 2021-08-16 10:30:27 +01:00
Makefile net: mdio: Add ACPI support code for mdio 2021-06-11 13:08:53 -07:00
mdio-aspeed.c mdio: aspeed: Fix "Link is Down" issue 2021-11-25 07:44:42 -08:00
mdio-bcm-iproc.c
mdio-bcm-unimac.c net: mdio: Fix spelling mistakes 2021-06-01 17:05:05 -07:00
mdio-bitbang.c net: phy: Add support for microchip SMI0 MDIO bus 2021-04-27 14:13:24 -07:00
mdio-cavium.c net: mdio: Alphabetically sort header inclusion 2021-03-16 11:10:00 -07:00
mdio-cavium.h
mdio-gpio.c net: phy: Add support for microchip SMI0 MDIO bus 2021-04-27 14:13:24 -07:00
mdio-hisi-femac.c
mdio-i2c.c
mdio-ipq4019.c net: mdio-ipq4019: Fix the error for an optional regs resource 2021-09-28 17:28:54 -07:00
mdio-ipq8064.c net: mdio: ipq8064: enlarge sleep after read/write operation 2021-05-14 15:31:45 -07:00
mdio-moxart.c net: phy: rename PHY_IGNORE_INTERRUPT to PHY_MAC_INTERRUPT 2021-02-15 15:20:49 -08:00
mdio-mscc-miim.c net: mdio: mscc-miim: Fix the mdio controller 2021-09-28 13:28:46 +01:00
mdio-mux-bcm6368.c net: mdio: Add BCM6368 MDIO mux bus controller 2021-03-16 11:52:18 -07:00
mdio-mux-bcm-iproc.c net: mido: mdio-mux-bcm-iproc: Use devm_platform_get_and_ioremap_resource() 2021-06-10 13:59:37 -07:00
mdio-mux-gpio.c net: mdio: Alphabetically sort header inclusion 2021-03-16 11:10:00 -07:00
mdio-mux-meson-g12a.c net: mdio: Fix spelling mistakes 2021-06-01 17:05:05 -07:00
mdio-mux-mmioreg.c net: mdio: Alphabetically sort header inclusion 2021-03-16 11:10:00 -07:00
mdio-mux-multiplexer.c net: mdio: Alphabetically sort header inclusion 2021-03-16 11:10:00 -07:00
mdio-mux.c net: mdio-mux: Handle -EPROBE_DEFER correctly 2021-08-18 10:48:52 +01:00
mdio-mvusb.c
mdio-octeon.c net: mdio: octeon: Fix some double free issues 2021-05-13 15:43:52 -07:00
mdio-sun4i.c
mdio-thunder.c net: mdio: thunder: Fix a double free issue in the .remove function 2021-05-13 13:13:34 -07:00
mdio-xgene.c net: mdio: Alphabetically sort header inclusion 2021-03-16 11:10:00 -07:00
of_mdio.c net: mdio: use device_set_node() to setup both fwnode and of 2021-06-17 12:06:52 -07:00