linux/drivers/net/phy
Alexandre Belloni 99f81afc13 phy: micrel: Disable auto negotiation on startup
Disable auto negotiation on init to properly detect an already plugged
cable at boot.

At boot, when the phy is started, it is in the PHY_UP state.
However, if a cable is plugged at boot, because auto negociation is already
enabled at the time we get the first interrupt, the phy is already running.
But the state machine then switches from PHY_UP to PHY_AN and calls
phy_start_aneg(). phy_start_aneg() will not do anything because aneg is
already enabled on the phy. It will then wait for a interrupt before going
further. This interrupt will never happen unless the cable is unplugged and
then replugged.

It was working properly before 321beec504 (net: phy: Use interrupts when
available in NOLINK state) because switching to NOLINK meant starting
polling the phy, even if IRQ were enabled.

Fixes: 321beec504 (net: phy: Use interrupts when available in NOLINK state)
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-03-01 16:52:09 -05: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
bcm7xxx.c net: phy: bcm7xxx: Remove wildcard entries 2016-02-16 14:55:36 -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
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
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_reg.h
dp83640.c net: dp83640: Fix tx timestamp overflow handling. 2016-01-20 18:54:08 -08: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 net: Fix dependencies for !HAS_IOMEM archs 2016-01-28 16:03:19 -08: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: marvell: Fix and unify reg-init behavior 2016-02-17 16:20:40 -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
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
micrel.c phy: micrel: Disable auto negotiation on startup 2016-03-01 16:52:09 -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_device.c phy: keep pause flags in phy driver features 2016-02-17 10:48:07 -05:00
phy.c net: phy: Fix phy_mac_interrupt() 2016-01-21 10:48:51 -08: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: smsc: Fix disabling energy detect mode 2016-01-21 12:06:03 -08: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