linux/drivers/net/phy
Ioana Ciornei 351f2d2c35 net: phy: aquantia: wait for the suspend/resume operations to finish
[ Upstream commit ca2dccdeeb ]

The Aquantia datasheet notes that after issuing a Processor-Intensive
MDIO operation, like changing the low-power state of the device, the
driver should wait for the operation to finish before issuing a new MDIO
command.

The new aqr107_wait_processor_intensive_op() function is added which can
be used after these kind of MDIO operations. At the moment, we are only
adding it at the end of the suspend/resume calls.

The issue was identified on a board featuring the AQR113C PHY, on
which commands like 'ip link (..) up / down' issued without any delays
between them would render the link on the PHY to remain down.
The issue was easy to reproduce with a one-liner:
 $ ip link set dev ethX down; ip link set dev ethX up; \
 ip link set dev ethX down; ip link set dev ethX up;

Fixes: ac9e81c230 ("net: phy: aquantia: add suspend / resume callbacks for AQR107 family")
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20220906130451.1483448-1-ioana.ciornei@nxp.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-09-28 11:10:31 +02:00
..
mscc net: phy: mscc: Add MODULE_FIRMWARE macros 2022-03-23 09:13:28 +01:00
adin.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
amd.c
aquantia_hwmon.c
aquantia_main.c net: phy: aquantia: wait for the suspend/resume operations to finish 2022-09-28 11:10:31 +02:00
aquantia.h
at803x.c net: phy: at803x: constify static regulator_ops 2020-08-26 16:21:17 -07:00
ax88796b.c
bcm-cygnus.c
bcm-phy-lib.c net: phy: broadcom: Only advertise EEE for supported modes 2021-04-14 08:42:08 +02:00
bcm-phy-lib.h net: phy: broadcom: add cable test support 2020-05-13 12:52:38 -07:00
bcm7xxx.c net: phy: bcm7xxx: Fixed indirect MMD operations 2021-10-06 15:55:58 +02:00
bcm63xx.c
bcm87xx.c net: mdiobus: add clause 45 mdiobus accessors 2020-05-26 15:31:45 -07:00
bcm54140.c net: phy: bcm54140: add cable diagnostics support 2020-05-13 12:52:39 -07:00
bcm84881.c net: phy: bcm84881: clear settings on link down 2020-04-23 15:55:35 -07:00
broadcom.c net: phy: broadcom: Fix brcm_fet_config_init() 2022-04-08 14:40:29 +02:00
cicada.c
cortina.c net: mdiobus: add clause 45 mdiobus accessors 2020-05-26 15:31:45 -07:00
davicom.c
dp83tc811.c net: phy: DP83TC811: Fix WoL in config init to be disabled 2020-05-01 15:23:44 -07:00
dp83640_reg.h ptp: dp83640: don't define PAGE0 2021-09-22 12:27:56 +02:00
dp83640.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
dp83822.c net: dp83822: disable rx error interrupt 2022-07-07 17:52:17 +02:00
dp83848.c
dp83867.c net: phy: dp83867: retrigger SGMII AN when link change 2022-06-14 18:32:45 +02:00
dp83869.c net: phy: introduce phydev->port 2021-03-30 14:32:05 +02:00
et1011c.c
fixed_phy.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
icplus.c
intel-xway.c net: phy: intel-xway: enable integrated led functions 2021-05-14 09:50:41 +02:00
Kconfig mdio: fix mdio-thunder.c dependency & build error 2020-09-27 13:21:28 -07:00
linkmode.c
lxt.c net: phy: introduce phydev->port 2021-03-30 14:32:05 +02:00
Makefile net: phy: Sort Kconfig and Makefile 2020-08-27 06:55:51 -07:00
marvell.c net: phy: marvell: Fix invalid comparison in the resume and suspend functions 2022-03-23 09:13:27 +01:00
marvell10g.c net: phy: marvell10g: fix return value on error 2022-05-09 09:05:05 +02:00
mdio_bus.c net: mdio: unexport __init-annotated mdio_bus_init() 2022-06-14 18:32:40 +02:00
mdio_device.c net: mdio: introduce a shutdown method to mdio device drivers 2021-10-09 14:40:56 +02:00
mdio_devres.c of: mdio: provide devm_of_mdiobus_register() 2020-06-30 15:57:34 -07:00
mdio-boardinfo.c net: phy: Fixup parameters in kerneldoc 2020-07-07 12:47:10 -07:00
mdio-boardinfo.h
meson-gxl.c
micrel.c net: phy: micrel: Allow probing without .driver_data 2022-06-09 10:20:55 +02:00
microchip_t1.c net: phy: microchip_t1: add lan87xx_phy_init to initialize the lan87xx phy. 2020-04-22 11:38:58 -07:00
microchip.c
mii_timestamper.c
national.c
nxp-tja11xx.c net: ethtool: Add generic parts of cable test TDR 2020-05-26 23:21:48 -07:00
phy_device.c phylib: fix potential use-after-free 2022-02-01 17:25:45 +01:00
phy_led_triggers.c
phy-c45.c net: phy: split devices_in_package 2020-06-19 20:17:15 -07:00
phy-core.c net: phy: prefer 1000baseT over 1000baseKX 2022-01-27 10:54:15 +01:00
phy.c net: phy: Fix race condition on link status change 2022-05-18 10:23:48 +02:00
phylink.c net: phylink: Force retrigger in case of latched link-fail indicator 2021-12-01 09:19:07 +01:00
qsemi.c
realtek.c net: phy: realtek: add delay to fix RXC generation issue 2021-07-19 09:44:49 +02:00
rockchip.c
sfp-bus.c net: sfp: add 2500base-X quirk for Lantech SFP module 2022-04-13 21:01:00 +02:00
sfp.c net: sfp: fix memory leak in sfp_probe() 2022-07-21 21:20:15 +02:00
sfp.h
smsc.c net: phy: lan87xx: fix access to wrong register of LAN87xx 2021-05-14 09:50:31 +02:00
spi_ks8995.c net: Use kobj_to_dev() API 2020-09-28 15:14:42 -07:00
ste10Xp.c
swphy.c Update rmk's email address in various drivers 2020-04-21 17:50:09 +01:00
swphy.h
teranetics.c net: phy: remove genphy_no_soft_reset 2020-04-24 16:47:51 -07:00
uPD60620.c
vitesse.c
xilinx_gmii2rgmii.c