linux/drivers/net/phy
Florian Fainelli deccd16f91 net: phy: Fix phy_mac_interrupt()
Commit 5ea94e7686 ("phy: add phy_mac_interrupt()") to use with
PHY_IGNORE_INTERRUPT added a cancel_work_sync() into phy_mac_interrupt()
which is allowed to sleep, whereas phy_mac_interrupt() is expected to be
callable from interrupt context.

Now that we have fixed how the PHY state machine treats
PHY_IGNORE_INTERRUPT with respect to state changes, we can just set the
new link state, and queue the PHY state machine for execution so it is
going to read the new link state.

For that to work properly, we need to update phy_change() not to try to
invoke any interrupt callbacks if we have configured the PHY device for
PHY_IGNORE_INTERRUPT, because that PHY device and its driver are not
required to implement those.

Fixes: 5ea94e7686 ("phy: add phy_mac_interrupt() to use with PHY_IGNORE_INTERRUPT")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-01-21 10:48:51 -08:00
..
amd.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
aquantia.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
at803x.c net: phy: at803x: Add the interrupt register bit definitions 2016-01-17 19:16:47 -05:00
bcm-cygnus.c net: phy: Broadcom Cygnus internal Etherent PHY driver 2015-10-08 04:45:52 -07:00
bcm-phy-lib.c phy: phy_{read|write}_mmd_indirect: get addr from phydev 2016-01-07 14:31:25 -05:00
bcm-phy-lib.h net: phy: Add Broadcom phy library for common interfaces 2015-10-08 04:45:46 -07:00
bcm7xxx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
bcm63xx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
bcm87xx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
broadcom.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
cicada.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
davicom.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
dp83640.c net: dp83640: Fix tx timestamp overflow handling. 2016-01-20 18:54:08 -08:00
dp83640_reg.h ptp: Added a clock driver for the National Semiconductor PHYTER. 2011-05-23 13:10:23 -07:00
dp83848.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
dp83867.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
et1011c.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
fixed_phy.c phy: Add an mdio_device structure 2016-01-07 14:31:26 -05:00
icplus.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-10-24 06:54:12 -07:00
lxt.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
Makefile mdio: Add support for mdio drivers. 2016-01-07 14:31:27 -05:00
marvell.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
mdio-bcm-iproc.c net: phy: Broadcom iProc MDIO bus driver 2015-10-08 04:44:46 -07:00
mdio-bcm-unimac.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-bitbang.c net: phy: mdio-gpio: Handle phy_ignore_ta_mask 2015-05-14 13:40:55 -04:00
mdio-gpio.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-moxart.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-mux-gpio.c gpiolib: rename gpiod_set_array to gpiod_set_array_value 2015-06-01 15:10:09 +02:00
mdio-mux-mmioreg.c net: phy: mdio: add missing of_node_put 2015-10-26 22:08:12 -07:00
mdio-mux.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-octeon.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-sun4i.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio_bus.c mdio_bus: NULL dereference on allocation error 2016-01-12 11:49:20 -05:00
mdio_device.c mdio: Abstract device_remove() and device_free() 2016-01-07 14:31:27 -05:00
micrel.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-01-11 23:55:43 -05:00
microchip.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
national.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
phy.c net: phy: Fix phy_mac_interrupt() 2016-01-21 10:48:51 -08:00
phy_device.c net: phy: turn carrier off on phy attach 2016-01-15 14:49:11 -05:00
qsemi.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
realtek.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
smsc.c net: phy: Add support for SMSC LAN8740 PHY 2016-01-10 23:13:24 -05:00
spi_ks8995.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
ste10Xp.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
teranetics.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
vitesse.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00