alistair23-linux/drivers/net/phy
Tim Beale c15e10e71c net: phy: Make sure phy_start() always re-enables the phy interrupts
This is an alternative way of fixing:
 commit db9683fb41 ("net: phy: Make sure PHY_RESUMING state change
                      is always processed")

When the PHY state transitions from PHY_HALTED to PHY_RESUMING, there are
two things we need to do:
1). Re-enable interrupts (and power up the physical link, if powered down)
2). Update the PHY state and net-device based on the link status.

There's no strict reason why #1 has to be done from within the main
phy_state_machine() function. There is a risk that other changes to the
PHY (e.g. setting speed/duplex, which calls phy_start_aneg()) could cause
a subsequent state transition before phy_state_machine() has processed
the PHY_RESUMING state change. This would leave the PHY with interrupts
disabled and/or still in the BMCR_PDOWN/low-power mode.

Moving enabling the interrupts and phy_resume() into phy_start() will
guarantee this work always gets done. As the PHY is already in the HALTED
state and interrupts are disabled, it shouldn't conflict with any work
being done in phy_state_machine(). The downside of this change is that if
the PHY_RESUMING state is ever entered from anywhere else, it'll also have
to repeat this work.

Signed-off-by: Tim Beale <tim.beale@alliedtelesis.co.nz>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-05-20 12:22:08 -04:00
..
amd-xgbe-phy.c amd-xgbe-phy: Provide support for auto-negotiation timeout 2015-03-20 16:33:56 -04:00
amd.c
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
bcm87xx.c
broadcom.c net: phy: broadcom: Add BCM54616S phy entry 2015-04-08 15:28:13 -04:00
cicada.c
davicom.c
dp83640.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-04-15 09:00:47 -07:00
dp83640_reg.h
et1011c.c
fixed_phy.c add fixed_phy_update_state() - update state of fixed_phy 2015-04-03 15:08:20 -04:00
icplus.c
Kconfig net: amd-xgbe: Add hardware dependency 2015-05-09 16:24:15 -04:00
lxt.c
Makefile
marvell.c
mdio-bcm-unimac.c net: phy: constify of_device_id array 2015-03-17 15:00:23 -04:00
mdio-bitbang.c
mdio-gpio.c net: mdio-gpio: Allow for unspecified bus id 2015-05-10 19:42:11 -04:00
mdio-moxart.c
mdio-mux-gpio.c mdio-mux-gpio: use new gpiod_get_array and gpiod_put_array functions 2015-04-27 13:35:40 -04:00
mdio-mux-mmioreg.c net: phy: constify of_device_id array 2015-03-17 15:00:23 -04:00
mdio-mux.c
mdio-octeon.c net: phy: constify of_device_id array 2015-03-17 15:00:23 -04:00
mdio-sun4i.c
mdio_bus.c net: phy: avoid suspending twice a PHY 2015-01-27 00:16:51 -08:00
micrel.c net: phy: micrel: Fix regression in kszphy_probe 2015-05-12 23:18:40 -04:00
national.c
phy.c net: phy: Make sure phy_start() always re-enables the phy interrupts 2015-05-20 12:22:08 -04:00
phy_device.c
qsemi.c
realtek.c
smsc.c
spi_ks8995.c
ste10Xp.c
vitesse.c