linux/drivers/net/phy
Jerome Brunet f1e2400a80 net: phy: meson-gxl: detect LPA corruption
The purpose of this change is to fix the incorrect detection of the link
partner (LP) advertised capabilities which sometimes happens with this PHY
(roughly 1 time in a dozen)

This issue may cause the link to be negotiated at 10Mbps/Full or
10Mbps/Half when 100MBps/Full is actually possible. In some case, the link
is even completely broken and no communication is possible.

To detect the corruption, we must look for a magic undocumented bit in the
WOL bank (hint given by the SoC vendor kernel) but this is not enough to
cover all cases. We also have to look at the LPA ack. If the LP supports
Aneg but did not ack our base code when aneg is completed, we assume
something went wrong.

The detection of a corrupted LPA triggers a restart of the aneg process.
This solves the problem but may take up to 6 retries to complete.

Fixes: 7334b3e47a ("net: phy: Add Meson GXL Internal PHY driver")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-12-11 11:18:33 -05:00
..
amd.c
aquantia.c
at803x.c net: phy: at803x: Change error to EINVAL for invalid MAC 2017-10-11 14:14:32 -07:00
bcm7xxx.c net: phy: bcm7xxx: make array bcm7xxx_suspend_cfg static, reduces object code size 2017-09-01 18:30:50 -07:00
bcm63xx.c
bcm87xx.c
bcm-cygnus.c
bcm-phy-lib.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
bcm-phy-lib.h
broadcom.c net: phy: broadcom: support new device flag for setting master mode 2017-10-12 22:59:38 -07:00
cicada.c
cortina.c net: phy: cortina: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE 2017-11-24 01:23:49 +09:00
davicom.c
dp83640_reg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dp83640.c dp83640: don't hold spinlock while calling netif_rx_ni 2017-08-30 14:50:11 -07:00
dp83822.c net: phy: DP83822 initial driver submission 2017-10-11 14:14:32 -07:00
dp83848.c net: phy: DP83822 initial driver submission 2017-10-11 14:14:32 -07:00
dp83867.c net: phy: dp83867: add workaround for incorrect RX_CTRL pin strap 2017-07-05 09:23:53 +01:00
et1011c.c
fixed_phy.c
icplus.c
intel-xway.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
Kconfig net: phy: leds: Add support for "link" trigger 2017-11-08 10:24:14 +09:00
lxt.c net: phy: lxt: Export link partner advertising 2017-06-20 13:41:24 -04:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
marvell10g.c net: phy: marvell10g: fix the PHY id mask 2017-11-28 10:30:38 -05:00
marvell.c net: phy: marvell: Only configure RGMII delays when using RGMII 2017-11-01 11:26:08 +09:00
mdio_bus.c Revert "mdio_bus: Remove unneeded gpiod NULL check" 2017-09-08 21:12:40 -07:00
mdio_device.c net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
mdio-bcm-iproc.c net: phy: Initialize mdio clock at probe function 2017-02-09 17:10:23 -05:00
mdio-bcm-unimac.c net: phy: mdio-bcm-unimac: Use correct I/O accessors 2017-08-29 14:42:17 -07:00
mdio-bitbang.c
mdio-boardinfo.c net: phy: Allow building mdio-boardinfo into the kernel 2017-03-29 10:32:32 -07:00
mdio-boardinfo.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mdio-cavium.c
mdio-cavium.h
mdio-gpio.c net: mdio-gpio: make mdiobb_ops const 2017-08-22 14:22:18 -07:00
mdio-hisi-femac.c
mdio-i2c.c net: phy: add I2C mdio bus 2017-08-06 20:55:28 -07:00
mdio-i2c.h net: phy: add I2C mdio bus 2017-08-06 20:55:28 -07:00
mdio-moxart.c
mdio-mux-bcm-iproc.c net: mdio-mux: add mdio_mux parameter to mdio_mux_init() 2017-09-05 14:42:52 -07:00
mdio-mux-gpio.c net: mdio-mux: add mdio_mux parameter to mdio_mux_init() 2017-09-05 14:42:52 -07:00
mdio-mux-mmioreg.c net: mdio-mux: add mdio_mux parameter to mdio_mux_init() 2017-09-05 14:42:52 -07:00
mdio-mux.c net: mdio-mux: add mdio_mux parameter to mdio_mux_init() 2017-09-05 14:42:52 -07:00
mdio-octeon.c
mdio-sun4i.c
mdio-thunder.c
mdio-xgene.c drivers: net: phy: xgene: Add lock to protect mac access 2017-05-16 11:41:08 -04:00
mdio-xgene.h drivers: net: phy: xgene: Add lock to protect mac access 2017-05-16 11:41:08 -04:00
meson-gxl.c net: phy: meson-gxl: detect LPA corruption 2017-12-11 11:18:33 -05:00
micrel.c net: phy-micrel: check return code in flp center function 2017-12-01 15:17:06 -05:00
microchip.c net: phy: Remove residual magic from PHY drivers 2017-05-16 15:58:18 -04:00
mscc.c net: phy: Add LED mode driver for Microsemi PHYs. 2017-02-08 13:29:04 -05:00
national.c
phy_device.c net: phy: Fix truncation of large IRQ numbers in phy_attached_print() 2017-09-21 20:35:17 -07:00
phy_led_triggers.c net: phy: leds: Add support for "link" trigger 2017-11-08 10:24:14 +09:00
phy-c45.c net: phy: split out 10G genphy support 2017-06-06 21:14:13 -04:00
phy-core.c net: phy: add 1000Base-X to phy settings table 2017-08-06 20:55:28 -07:00
phy.c net: phy: Keep reporting transceiver type 2017-09-21 15:20:40 -07:00
phylink.c phylink: ensure we take the link down when phylink_stop() is called 2017-12-01 15:18:42 -05:00
qsemi.c
realtek.c net: phy: realtek: fix RTL8211F interrupt mode 2017-11-14 21:33:50 +09:00
rockchip.c net: phy: Add rockchip PHY driver support 2017-08-11 14:28:58 -07:00
sfp-bus.c net: phy: Cosmetic fixes to phylink/sfp/sfp-bus.c 2017-11-01 21:15:09 +09:00
sfp.c sfp: warn about modules requiring address change sequence 2017-12-01 15:18:42 -05:00
sfp.h sfp: add sfp-bus to bridge between network devices and sfp cages 2017-08-06 20:55:29 -07:00
smsc.c net: phy: smsc: fix buffer overflow in memcpy 2017-06-22 11:12:31 -04:00
spi_ks8995.c spi_ks8995: regs_size incorrect for some devices 2017-03-07 13:33:24 -08:00
ste10Xp.c
swphy.c
swphy.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
teranetics.c
uPD60620.c Add a driver for Renesas uPD60620 and uPD60620A PHYs 2017-10-09 20:49:36 -07:00
vitesse.c
xilinx_gmii2rgmii.c net: phy: Fix mask value write on gmii2rgmii converter speed register 2017-09-18 16:33:18 -07:00