linux/drivers/net/phy
Florian Fainelli 803dd9c77a net: phy: avoid suspending twice a PHY
As part of a call to ndo_close() a netdevice driver may call
phy_disconnect() -> phy_detach() -> phy_suspend(), such that the PHY is
suspsended at this point and a netdevice driver may clock gate the
backing peripheral providing MDIO bus accessses as well.

Update mdio_bus_phy_may_suspend() to return whether a PHY is allowed to
be suspended and conversely resumed if and only if it was not previously
suspended before while it is currently in detached (netdev pointer is
NULL) state.

This fixes bus errors seen during S2/S3 suspend/resume cycles for
netdevice drivers such as GENET which clock gates the entire Ethernet
MAC, including the MDIO bus block.

Acked-by: Fugang Duan <B38611@freescale.com>
Tested-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-01-27 00:16:51 -08:00
..
amd-xgbe-phy.c amd-xgbe-phy: Allow certain PHY settings to be set by UEFI 2015-01-16 22:24:21 -05:00
amd.c net: phy: replace phy_driver_register calls 2014-11-12 13:52:53 -05:00
at803x.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
bcm7xxx.c net: phy: bcm7xxx: add an explicit version check for GPHY rev G0 2014-12-08 21:33:29 -05:00
bcm63xx.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
bcm87xx.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
broadcom.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
cicada.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
davicom.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
dp83640_reg.h ptp: Added a clock driver for the National Semiconductor PHYTER. 2011-05-23 13:10:23 -07:00
dp83640.c net: ptp: fix time stamp matching logic for VLAN packets. 2014-11-12 15:06:17 -05:00
et1011c.c net: phy: replace phy_driver_register calls 2014-11-12 13:52:53 -05:00
fixed_phy.c net: phy: fixed: allow setting no update_link callback 2015-01-25 16:02:13 -08:00
icplus.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
Kconfig amd-xgbe: Add ACPI support 2015-01-16 22:24:20 -05:00
lxt.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
Makefile net: Allow FIXED_PHY to be modular. 2014-12-16 15:02:23 -05:00
marvell.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
mdio_bus.c net: phy: avoid suspending twice a PHY 2015-01-27 00:16:51 -08:00
mdio-bcm-unimac.c net: phy: drop owner assignment from platform_drivers 2014-10-20 16:21:15 +02:00
mdio-bitbang.c Revert "drivers/net/phy/mdio-bitbang.c: Call mdiobus_unregister before mdiobus_free" 2012-11-14 22:32:15 -05:00
mdio-gpio.c net: phy: drop owner assignment from platform_drivers 2014-10-20 16:21:15 +02:00
mdio-moxart.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-mux-gpio.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
mdio-mux-mmioreg.c net: phy: drop owner assignment from platform_drivers 2014-10-20 16:21:15 +02:00
mdio-mux.c netdev/phy: skip disabled mdio-mux nodes 2012-08-20 02:16:00 -07:00
mdio-octeon.c net: phy: drop owner assignment from platform_drivers 2014-10-20 16:21:15 +02:00
mdio-sun4i.c net: sun4i: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
micrel.c net: phy: micrel: use generic config_init for KSZ8021/KSZ8031 2014-12-26 16:19:50 -05:00
national.c net: phy: replace phy_driver_register calls 2014-11-12 13:52:53 -05:00
phy_device.c net: phy: keep track of the PHY suspend state 2015-01-27 00:16:51 -08:00
phy.c net: phy: Correctly handle MII ioctl which changes autonegotiation. 2014-11-11 16:21:26 -05:00
qsemi.c net: phy: replace phy_driver_register calls 2014-11-12 13:52:53 -05:00
realtek.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
smsc.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
spi_ks8995.c net: phy: spi_ks8995: remove sysfs bin file by registered attribute 2014-11-04 17:18:45 -05:00
ste10Xp.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
vitesse.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00