linux/drivers/net/phy
Russell King (Oracle) dbae3388ea net: phylink: Force retrigger in case of latched link-fail indicator
On mv88e6xxx 1G/2.5G PCS, the SerDes register 4.2001.2 has the following
description:
  This register bit indicates when link was lost since the last
  read. For the current link status, read this register
  back-to-back.

Thus to get current link state, we need to read the register twice.

But doing that in the link change interrupt handler would lead to
potentially ignoring link down events, which we really want to avoid.

Thus this needs to be solved in phylink's resolve, by retriggering
another resolve in the event when PCS reports link down and previous
link was up, and by re-reading PCS state if the previous link was down.

The wrong value is read when phylink requests change from sgmii to
2500base-x mode, and link won't come up. This fixes the bug.

Fixes: 9525ae8395 ("phylink: add phylink infrastructure")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-11-24 18:40:07 -08:00
..
mscc ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
adin.c net: phy: Demote non-compliant kernel-doc headers 2021-05-17 14:12:39 -07:00
amd.c net: phy: amd: remove the use of .ack_interrupt() 2020-11-17 11:37:00 -08:00
aquantia_hwmon.c
aquantia_main.c net: phy: aquantia: do not return an error on clearing pending IRQs 2020-11-11 14:09:54 -08:00
aquantia.h
at803x.c net: phy: Fix unsigned comparison with less than zero 2021-10-27 18:26:14 -07:00
ax88796b.c net: usb/phy: asix: add support for ax88772A/C PHYs 2021-06-07 13:23:02 -07:00
bcm7xxx.c net: phy: bcm7xxx: Add EPHY entry for 7712 2021-10-24 13:42:28 +01:00
bcm63xx.c net: phy: broadcom: remove use of ack_interrupt() 2020-11-05 16:32:39 -08:00
bcm87xx.c net: phy: change format of some declarations 2021-06-16 12:34:07 -07:00
bcm54140.c net: phy: broadcom: remove use of ack_interrupt() 2020-11-05 16:32:39 -08:00
bcm84881.c
bcm-cygnus.c net: phy: broadcom: remove use of ack_interrupt() 2020-11-05 16:32:39 -08:00
bcm-phy-lib.c net: phy: broadcom: Only advertise EEE for supported modes 2021-03-30 17:39:23 -07:00
bcm-phy-lib.h net: phy: broadcom: implement generic .handle_interrupt() callback 2020-11-05 16:32:27 -08:00
broadcom.c net: phy: broadcom: Utilize appropriate suspend for BCM54810/11 2021-09-21 10:58:35 +01:00
cicada.c net: phy: cicada: remove the use of .ack_interrupt() 2020-11-05 16:32:39 -08:00
cortina.c
davicom.c net: phy: fix space alignment issues 2021-06-16 12:34:07 -07:00
dp83tc811.c net: phy: ti: take into account all possible interrupt sources 2021-03-01 11:46:55 -08:00
dp83640_reg.h ptp: dp83640: don't define PAGE0 2021-09-14 20:03:24 -07:00
dp83640.c net: phy: remove unnecessary line continuation 2021-06-16 12:34:07 -07:00
dp83822.c net: phy: Fix data type in DP83822 dp8382x_disable_wol() 2021-07-18 09:46:34 -07:00
dp83848.c net: phy: ti: remove the use of .ack_interrupt() 2020-11-25 11:18:38 -08:00
dp83867.c net: phy: constify netdev->dev_addr references 2021-10-24 13:59:44 +01:00
dp83869.c net: phy: constify netdev->dev_addr references 2021-10-24 13:59:44 +01:00
et1011c.c net: phy: remove unnecessary line continuation 2021-06-16 12:34:07 -07:00
fixed_phy.c net: phy: fix formatting issues with braces 2021-06-16 12:34:07 -07:00
icplus.c net: phy: icplus: call phy_restore_page() when phy_select_page() fails 2021-02-22 18:47:48 -08:00
intel-xway.c net: phy: intel-xway: Add RGMII internal delay configuration 2021-07-20 07:23:16 -07:00
Kconfig ethernet: fix PTP_1588_CLOCK dependencies 2021-08-13 17:49:05 -07:00
linkmode.c
lxt.c net: phy: correct format of block comments 2021-06-16 12:34:07 -07:00
Makefile net: phy: add Maxlinear GPY115/21x/24x driver 2021-07-20 06:55:20 -07:00
marvell10g.c net: phy: marvell10g: add downshift tunable support 2021-09-30 13:22:46 +01:00
marvell-88x2222.c net: phy: marvell-88x2222: enable autoneg by default 2021-04-27 14:05:41 -07:00
marvell.c net: phy: marvell: Add WAKE_PHY support to WOL event 2021-08-16 11:05:52 +01:00
mdio_bus.c net: mdio: ensure the type of mdio devices match mdio drivers 2021-10-08 15:20:45 +01:00
mdio_device.c net: mdio: introduce a shutdown method to mdio device drivers 2021-09-19 12:08:37 +01:00
mdio_devres.c
mdio-boardinfo.c net: phy: Correct function name mdiobus_register_board_info() in comment 2021-03-29 13:42:44 -07:00
mdio-boardinfo.h
mediatek-ge.c net: phy: mediatek: add the missing suspend/resume callbacks 2021-08-24 16:52:43 -07:00
meson-gxl.c net: phy: meson-gxl: remove the use of .ack_callback() 2020-11-25 11:18:37 -08:00
micrel.c phy: micrel: ksz8041nl: do not use power down mode 2021-10-20 14:38:12 +01:00
microchip_t1.c net: phy: microchip_t1: add lan87xx_config_rgmii_delay for lan87xx phy 2021-11-02 17:16:27 -07:00
microchip.c net: phy: microchip: remove the use of .ack_interrupt() 2020-11-17 11:36:59 -08:00
mii_timestamper.c net: mii_timestamper: check NULL in unregister_mii_timestamper() 2021-06-11 13:08:52 -07:00
motorcomm.c net: phy: abort loading yt8511 driver in unsupported modes 2021-05-30 14:24:38 -07:00
mxl-gpy.c net: phy: enhance GPY115 loopback disable function 2021-09-27 13:49:38 +01:00
national.c net: phy: correct format of block comments 2021-06-16 12:34:07 -07:00
nxp-c45-tja11xx.c net: phy: nxp-c45-tja11xx: enable MDIO write access to the master/slave registers 2021-06-14 13:12:59 -07:00
nxp-tja11xx.c net: phy: nxp-tja11xx: log critical health state 2021-08-12 10:51:45 +01:00
phy_device.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-10-14 16:50:14 -07:00
phy_led_triggers.c
phy-c45.c net: phy: fixed warning: Function parameter not described 2021-10-26 14:09:50 -07:00
phy-core.c net: phy: correct format of block comments 2021-06-16 12:34:07 -07:00
phy.c net: phy: fix duplex out of sync problem while changing settings 2021-11-04 16:46:29 -07:00
phylink.c net: phylink: Force retrigger in case of latched link-fail indicator 2021-11-24 18:40:07 -08:00
qsemi.c net: phy: change format of some declarations 2021-06-16 12:34:07 -07:00
realtek.c net: phy: realtek: add support for RTL8365MB-VC internal PHYs 2021-10-18 14:02:56 +01:00
rockchip.c net: phy: Demote non-compliant kernel-doc headers 2021-05-17 14:12:39 -07:00
sfp-bus.c net: convert users of bitmap_foo() to linkmode_foo() 2021-10-24 13:58:52 +01:00
sfp.c net: sfp: Fix typo in state machine debug string 2021-10-05 13:08:13 +01:00
sfp.h phy: sfp: add netlink SFP support to generic SFP code 2021-04-11 16:34:56 -07:00
smsc.c net: phy: lan87xx: fix access to wrong register of LAN87xx 2021-03-30 13:13:08 -07:00
spi_ks8995.c net: phy: fix space alignment issues 2021-06-16 12:34:07 -07:00
ste10Xp.c net: phy: fix space alignment issues 2021-06-16 12:34:07 -07:00
swphy.c
swphy.h
teranetics.c
uPD60620.c
vitesse.c net: phy: correct format of block comments 2021-06-16 12:34:07 -07:00
xilinx_gmii2rgmii.c net: phy: gmii2rgmii: Support PHY loopback 2021-08-20 14:31:46 +01:00