mirror_ubuntu-kernels/drivers/net/phy
Clemens Gruber 3b72f84f8f net: phy: marvell: Fix pause frame negotiation
The negotiation of flow control / pause frame modes was broken since
commit fcf1f59afc ("net: phy: marvell: rearrange to use
genphy_read_lpa()") moved the setting of phydev->duplex below the
phy_resolve_aneg_pause call. Due to a check of DUPLEX_FULL in that
function, phydev->pause was no longer set.

Fix it by moving the parsing of the status variable before the blocks
dealing with the pause frames.

As the Marvell 88E1510 datasheet does not specify the timing between the
link status and the "Speed and Duplex Resolved" bit, we have to force
the link down as long as the resolved bit is not set, to avoid reporting
link up before we even have valid Speed/Duplex.

Tested with a Marvell 88E1510 (RGMII to Copper/1000Base-T)

Fixes: fcf1f59afc ("net: phy: marvell: rearrange to use genphy_read_lpa()")
Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-04-11 16:51:09 -07:00
..
mscc net: phy: mscc: consolidate a common RGMII delay implementation 2020-03-24 16:36:37 -07:00
adin.c net: phy: adin: fix a warning about msleep 2020-01-19 16:06:42 +01:00
amd.c
aquantia_hwmon.c
aquantia_main.c net: phy: aquantia: use phy_read_mmd_poll_timeout() to simplify the code 2020-03-23 22:00:02 -07:00
aquantia.h net: phy: Use the correct style for SPDX License Identifier 2019-11-27 11:25:48 -08:00
at803x.c net: phy: at803x: fix clock sink configuration on ATH8030 and ATH8035 2020-04-01 11:20:47 -07:00
ax88796b.c net: phy: rename Asix Electronics PHY driver 2019-06-09 13:24:17 -07:00
bcm7xxx.c net: phy: bcm7xx: add jumbo frame configuration to PHY 2020-03-27 16:07:24 -07:00
bcm63xx.c net: phy: bcm63xx: fix OOPS due to missing driver name 2020-03-03 17:37:06 -08:00
bcm87xx.c net: phy: bcm87xx: improve bcm87xx_config_init and feature detection 2019-05-26 21:56:41 -07:00
bcm84881.c net: phy: bcm84881: use phy_read_mmd_poll_timeout() to simplify the code 2020-03-23 22:00:02 -07:00
bcm-cygnus.c
bcm-phy-lib.c net: phy: bcm7xx: add jumbo frame configuration to PHY 2020-03-27 16:07:24 -07:00
bcm-phy-lib.h net: phy: bcm7xx: add jumbo frame configuration to PHY 2020-03-27 16:07:24 -07:00
broadcom.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-02-21 13:39:34 -08:00
cicada.c
cortina.c
davicom.c
dp83tc811.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
dp83640_reg.h
dp83640.c ptp: Avoid deadlocks in the programmable pin code. 2020-03-30 11:16:38 -07:00
dp83822.c net: phy: DP83822: Add support for additional DP83825 devices 2020-01-23 21:21:12 +01:00
dp83848.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
dp83867.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
dp83869.c net: phy: dp83869: Remove unneeded semicolon 2019-12-14 16:11:40 -08:00
et1011c.c
fixed_phy.c net: phy: fixed_phy: switch to using fwnode_gpiod_get_index 2020-01-05 14:27:01 -08:00
icplus.c
intel-xway.c
Kconfig net: phy: add marvell usb to mdio controller 2020-03-26 19:49:34 -07:00
linkmode.c net: add linkmode helper for setting flow control advertisement 2020-02-16 19:39:44 -08:00
lxt.c net: phy: provide and use genphy_read_status_fixed() 2019-12-19 12:52:34 -08:00
Makefile net: phy: add marvell usb to mdio controller 2020-03-26 19:49:34 -07:00
marvell10g.c net: phy: marvell10g: use phy_read_mmd_poll_timeout() to simplify the code 2020-03-23 22:00:02 -07:00
marvell.c net: phy: marvell: Fix pause frame negotiation 2020-04-11 16:51:09 -07:00
mdio_bus.c Documentation: mdio_bus.c - fix warnings 2020-04-07 18:33:48 -07:00
mdio_device.c net: phy: allow for reset line to be tied to a sleepy GPIO controller 2019-10-04 18:07:45 -07:00
mdio-aspeed.c net: phy: Add mdio-aspeed 2019-08-02 17:56:28 -07:00
mdio-bcm-iproc.c net: phy: restore mdio regs in the iproc mdio driver 2020-02-16 19:19:18 -08:00
mdio-bcm-unimac.c net: phy: mdio-bcm-unimac: Fix clock handling 2020-03-24 16:45:32 -07:00
mdio-bitbang.c
mdio-boardinfo.c
mdio-boardinfo.h
mdio-cavium.c
mdio-cavium.h net: phy: Use the correct style for SPDX License Identifier 2019-11-27 11:25:48 -08:00
mdio-gpio.c
mdio-hisi-femac.c phy: mdio-hisi-femac: use devm_platform_ioremap_resource() to simplify code 2019-08-28 14:51:00 -07:00
mdio-i2c.c net: mdio-i2c: add support for Clause 45 accesses 2019-12-11 11:53:41 -08:00
mdio-i2c.h net: phy: Use the correct style for SPDX License Identifier 2019-11-27 11:25:48 -08:00
mdio-ipq8064.c net: mdio: add ipq8064 mdio driver 2020-03-06 22:07:05 -08:00
mdio-moxart.c phy: mdio-moxart: use devm_platform_ioremap_resource() to simplify code 2019-08-28 14:51:00 -07:00
mdio-mscc-miim.c
mdio-mux-bcm-iproc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
mdio-mux-gpio.c
mdio-mux-meson-g12a.c clk: let init callback return an error code 2019-12-23 18:53:13 -08:00
mdio-mux-mmioreg.c
mdio-mux-multiplexer.c
mdio-mux.c
mdio-mvusb.c net: phy: add marvell usb to mdio controller 2020-03-26 19:49:34 -07:00
mdio-octeon.c
mdio-sun4i.c phy: mdio-sun4i: add missed regulator_disable in remove 2019-11-18 17:22:40 -08:00
mdio-thunder.c phy: mdio-thunder: add missed pci_release_regions in remove 2019-12-06 12:05:06 -08:00
mdio-xgene.c net: phy: xgene: use devm_platform_ioremap_resource() to simplify code 2019-08-01 13:10:34 -04:00
mdio-xgene.h net: phy: Use the correct style for SPDX License Identifier 2019-11-27 11:25:48 -08:00
mdio-xpcs.c net: phy: xpcs: Restart AutoNeg if outcome was invalid 2020-03-23 21:01:58 -07:00
meson-gxl.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
micrel.c net: phy: micrel: kszphy_resume(): add delay after genphy_resume() before accessing PHY registers 2020-04-03 16:04:24 -07:00
microchip_t1.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
microchip.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
mii_timestamper.c net: mii_timestamper: fix static allocation by PHY driver 2020-01-31 07:46:11 -08:00
national.c net/phy: fix DP83865 10 Mbps HDX loopback disable function 2019-09-21 18:21:52 -07:00
nxp-tja11xx.c net: phy: tja11xx: use phy_read_poll_timeout() to simplify the code 2020-03-23 22:00:02 -07:00
phy_device.c net: phy: don't touch suspended flag if there's no suspend/resume callback 2020-03-26 20:29:51 -07:00
phy_led_triggers.c net: phy: phy_led_triggers: Fix a possible null-pointer dereference in phy_led_trigger_change_speed() 2019-07-31 18:56:11 -04:00
phy-c45.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-02-27 18:31:39 -08:00
phy-core.c net: phy: add and use phy_check_downshift 2020-03-23 21:09:47 -07:00
phy.c net: phy: add and use phy_check_downshift 2020-03-23 21:09:47 -07:00
phylink.c net: phylink: add separate pcs operations structure 2020-03-30 11:52:27 -07:00
qsemi.c
realtek.c net: phy: realtek: read actual speed to detect downshift 2020-03-18 17:05:34 -07:00
rockchip.c
sfp-bus.c net: phy: sfp-bus.c: get rid of docs warnings 2020-03-17 23:39:29 -07:00
sfp.c net: sfp: report error on failure to read sfp soft status 2019-12-19 17:26:07 -08:00
sfp.h net: sfp: add module start/stop upstream notifications 2019-12-11 11:53:41 -08:00
smsc.c net: phy: smsc: use phy_read_poll_timeout() to simplify the code 2020-03-23 22:00:02 -07:00
spi_ks8995.c
ste10Xp.c
swphy.c net: phy: swphy: emulate register MII_ESTATUS 2019-08-15 11:43:48 -07:00
swphy.h
teranetics.c
uPD60620.c net: phy: use phy_resolve_aneg_pause() 2019-12-19 12:52:34 -08:00
vitesse.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
xilinx_gmii2rgmii.c net: phy: gmii2rgmii: Dont use priv field in phy device 2019-09-05 12:32:06 +02:00