OpenCloudOS-Kernel/drivers/net/phy
Stas Sergeev a3bebdce41 add fixed_phy_update_state() - update state of fixed_phy
Currently fixed_phy uses a callback to periodically poll the link state.
This patch adds the fixed_phy_update_state() API.
It solves the following problems:
- On link state interrupt, MAC driver can't update status.
Instead it needs to provide the callback to periodically query
the HW about the link state. It is more efficient to update status
after interrupt.
- The callback needs to be unregistered before phy_disconnect(),
or otherwise it will be called with net_dev==NULL. phy_disconnect()
does not have enough info to unregister the callback automatically.
- The callback needs to be registered before of_phy_connect() to
avoid running with outdated state, but of_phy_connect() returns the
phy_device pointer, which is needed to register the callback. Registering
it before of_phy_connect() will therefore require a hack to get the
pointer earlier.

Overall, this addition makes the subsequent patch that implements
SGMII link status for mvneta, much cleaner.

CC: Florian Fainelli <f.fainelli@gmail.com>
CC: netdev@vger.kernel.org
CC: linux-kernel@vger.kernel.org

Signed-off-by: Stas Sergeev <stsp@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-04-03 15:08:20 -04:00
..
Kconfig amd-xgbe: Add ACPI support 2015-01-16 22:24:20 -05:00
Makefile net: Allow FIXED_PHY to be modular. 2014-12-16 15:02:23 -05:00
amd-xgbe-phy.c amd-xgbe-phy: Provide support for auto-negotiation timeout 2015-03-20 16:33:56 -04:00
amd.c net: phy: replace phy_driver_register calls 2014-11-12 13:52:53 -05:00
at803x.c net: phy: at803x: simplify using devm_gpiod_get_optional and its 4th argument 2015-04-01 12:44:04 -04:00
bcm7xxx.c net: phy: bcm7xxx: add alternate id for 7439 2015-03-09 23:57:54 -04: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.c ptp: dp83640: convert to the 64 bit get/set time methods. 2015-03-31 12:01:19 -04:00
dp83640_reg.h ptp: Added a clock driver for the National Semiconductor PHYTER. 2011-05-23 13:10:23 -07:00
et1011c.c net: phy: replace phy_driver_register calls 2014-11-12 13:52:53 -05:00
fixed_phy.c add fixed_phy_update_state() - update state of fixed_phy 2015-04-03 15:08:20 -04:00
icplus.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
lxt.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
marvell.c net: phy: replace phy_drivers_register calls 2014-11-12 13:52:53 -05:00
mdio-bcm-unimac.c net: phy: constify of_device_id array 2015-03-17 15:00:23 -04: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: constify of_device_id array 2015-03-17 15:00:23 -04: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 net: phy: constify of_device_id array 2015-03-17 15:00:23 -04:00
mdio-mux-mmioreg.c net: phy: constify of_device_id array 2015-03-17 15:00:23 -04:00
mdio-mux.c netdev/phy: skip disabled mdio-mux nodes 2012-08-20 02:16:00 -07:00
mdio-octeon.c net: phy: constify of_device_id array 2015-03-17 15:00:23 -04:00
mdio-sun4i.c net: sun4i: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
mdio_bus.c net: phy: avoid suspending twice a PHY 2015-01-27 00:16:51 -08:00
micrel.c net: phy: micrel: disable NAND-tree for KSZ8021, KSZ8031, KSZ8051, KSZ8081 2015-02-14 20:30:55 -08:00
national.c net: phy: replace phy_driver_register calls 2014-11-12 13:52:53 -05:00
phy.c net: phy: Fix verification of EEE support in phy_init_eee 2015-02-20 15:29:49 -05:00
phy_device.c net: phy: keep track of the PHY suspend state 2015-01-27 00:16:51 -08: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