linux/drivers/net/phy
Russell King (Oracle) 04361b8bb8 net: sfp: fix state loss when updating state_hw_mask
Andrew reports that the SFF modules on one of the ZII platforms do not
indicate link up due to the SFP code believing that LOS indicating that
there is no signal being received from the remote end, but in fact the
LOS signal is showing that there is signal.

What makes SFF modules different from SFPs is they typically have an
inverted LOS, which uncovered this issue. When we read the hardware
state, we mask it with state_hw_mask so we ignore anything we're not
interested in. However, we don't re-read when state_hw_mask changes,
leading to sfp->state being stale.

Arrange for a software poll of the module state after we have parsed
the EEPROM in sfp_sm_mod_probe() and updated state_*_mask. This will
generate any necessary events for signal changes for the state
machine as well as updating sfp->state.

Reported-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Andrew Lunn <andrew@lunn.ch>
Fixes: 8475c4b70b ("net: sfp: re-implement soft state polling setup")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-03-19 10:59:33 +00:00
..
mscc net: phy: mscc: fix deadlock in phy_ethtool_{get,set}_wol() 2023-03-15 21:33:22 -07:00
adin1100.c net: phy: adin1100: add PHY IDs of adin1110/adin2111 2022-09-20 15:00:30 +02:00
adin.c net: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:07 -07:00
amd.c
aquantia_hwmon.c
aquantia_main.c net: phy: aquantia: add AQR112 and AQR412 PHY IDs 2022-11-15 20:34:27 -08:00
aquantia.h
at803x.c Random number generator updates for Linux 6.2-rc1. 2022-12-12 16:22:22 -08:00
ax88796b.c net: phy: ax88772a: fix lost pause advertisement configuration 2022-06-29 20:39:05 -07:00
bcm7xxx.c
bcm63xx.c
bcm87xx.c net: phy: bcm87xx: Use mmd helpers 2022-05-02 13:21:38 +02:00
bcm54140.c
bcm84881.c
bcm-cygnus.c
bcm-phy-lib.c net: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:07 -07:00
bcm-phy-lib.h net: phy: broadcom: Add Broadcom PTP hooks to bcm-phy-lib 2022-06-23 20:49:02 -07:00
bcm-phy-ptp.c net: phy: Add support for 1PPS out and external timestamps 2022-06-23 20:49:02 -07:00
broadcom.c net: phy: broadcom: Implement suspend/resume for AC131 and BCM5241 2022-08-17 11:49:23 +01:00
cicada.c
cortina.c
davicom.c
dp83tc811.c
dp83td510.c net: phy: dp83td510: add SQI support 2022-06-21 22:01:14 -07:00
dp83640_reg.h
dp83640.c dp83640: Use generic ptp_msg_is_sync() function 2022-03-07 11:31:34 +00:00
dp83822.c net: phy: dp83822: Fix null pointer access on DP83825/DP83826 devices 2023-01-28 00:23:58 -08:00
dp83848.c
dp83867.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-17 18:30:39 -08:00
dp83869.c
et1011c.c
fixed_phy.c net: phy: fixed_phy: set phy_mask before calling mdiobus_register() 2022-06-13 23:11:24 -07:00
icplus.c
intel-xway.c
Kconfig net: phy: Add driver for Motorcomm yt8531 gigabit ethernet phy 2023-02-03 09:34:51 +00:00
linkmode.c
lxt.c
Makefile drivers/net/phy: add driver for the onsemi NCN26000 10BASE-T1S PHY 2023-01-11 08:35:03 +00:00
marvell10g.c net: phy: marvell10g: select host interface configuration 2022-10-03 11:08:32 +01:00
marvell-88x2222.c net: sfp: augment SFP parsing with phy_interface_t bitmap 2022-10-03 11:08:32 +01:00
marvell.c net: phy: marvell: Use the unlocked genphy_c45_ethtool_get_eee() 2023-02-20 10:04:22 +00:00
mdio_bus.c Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
mdio_device.c net: mdio: fix unbalanced fwnode reference count in mdio_device_release() 2022-12-06 12:50:00 +01:00
mdio_devres.c net: mdio: fix owner field for mdio buses registered using device-tree 2023-03-19 10:48:35 +00:00
mdio-boardinfo.c
mdio-boardinfo.h
mdio-open-alliance.h drivers/net/phy: add helpers to get/set PLCA configuration 2023-01-11 08:35:02 +00:00
mediatek-ge.c
meson-gxl.c net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY 2023-02-03 19:55:36 -08:00
micrel.c net: phy: micrel: add ksz9477_get_features() 2023-02-13 11:12:31 +00:00
microchip_t1.c net: phy: microchip: run phy initialization during each link update 2023-01-23 22:34:19 -08:00
microchip.c net: lan78xx: fix accessing the LAN7800's internal phy specific registers from the MAC driver 2023-03-02 22:21:07 -08:00
mii_timestamper.c
motorcomm.c net: phy: motorcomm: uninitialized variables in yt8531_link_change_notify() 2023-02-15 21:23:33 -08:00
mxl-gpy.c net: phy: mxl-gpy: disable interrupts on GPY215 by default 2023-01-10 13:38:37 +01:00
national.c
ncn26000.c drivers/net/phy: add driver for the onsemi NCN26000 10BASE-T1S PHY 2023-01-11 08:35:03 +00:00
nxp-c45-tja11xx.c net: phy: nxp-c45-tja11xx: fix MII_BASIC_CONFIG_REV bit 2023-03-10 21:23:21 -08:00
nxp-tja11xx.c net: phy: tja11xx: add interface mode and RMII REF_CLK support 2022-08-23 17:43:28 -07:00
phy_device.c net: phylib: get rid of unnecessary locking 2023-03-06 09:33:07 +00:00
phy_led_triggers.c
phy-c45.c net: phy: c45: fix network interface initialization failures on xtensa, arm:cubieboard 2023-02-27 11:41:49 -08:00
phy-core.c drivers/net/phy: add the link modes for the 10BASE-T1S Ethernet PHY 2023-01-11 08:35:02 +00:00
phy.c net: phy: Ensure state transitions are processed from phy_stop() 2023-03-19 10:46:13 +00:00
phylink.c net: phylink: support validated pause and autoneg in fixed-link 2023-02-15 10:35:27 +00:00
qsemi.c
realtek.c net: phy: realtek: add support for RTL8211F(D)(I)-VD-CG 2022-08-22 12:47:18 +01:00
rockchip.c
sfp-bus.c net: sfp: fill also 5gbase-r and 25gbase-r modes in sfp_parse_support() 2022-10-10 18:00:29 -07:00
sfp.c net: sfp: fix state loss when updating state_hw_mask 2023-03-19 10:59:33 +00:00
sfp.h net: sfp: augment SFP parsing with phy_interface_t bitmap 2022-10-03 11:08:32 +01:00
smsc.c net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails 2023-03-15 00:19:16 -07:00
spi_ks8995.c net: phy: spi_ks8895: switch to using gpiod API 2022-09-15 11:43:51 +02:00
ste10Xp.c
swphy.c
swphy.h
teranetics.c
uPD60620.c
vitesse.c
xilinx_gmii2rgmii.c net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe 2022-12-30 07:46:10 +00:00