1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
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
adin.c net: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:07 -07:00
adin1100.c net: phy: adin1100: add PHY IDs of adin1110/adin2111 2022-09-20 15:00:30 +02:00
amd.c net: phy: amd: remove the use of .ack_interrupt() 2020-11-17 11:37:00 -08:00
aquantia.h
aquantia_hwmon.c
aquantia_main.c net: phy: aquantia: add AQR112 and AQR412 PHY IDs 2022-11-15 20:34:27 -08:00
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
bcm-cygnus.c net: phy: broadcom: remove use of ack_interrupt() 2020-11-05 16:32:39 -08:00
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
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: bcm87xx: Use mmd helpers 2022-05-02 13:21:38 +02:00
bcm54140.c net: phy: broadcom: remove use of ack_interrupt() 2020-11-05 16:32:39 -08:00
bcm84881.c net: phy: bcm84881: clear settings on link down 2020-04-23 15:55:35 -07:00
broadcom.c net: phy: broadcom: Implement suspend/resume for AC131 and BCM5241 2022-08-17 11:49:23 +01:00
cicada.c net: phy: cicada: remove the use of .ack_interrupt() 2020-11-05 16:32:39 -08:00
cortina.c net: mdiobus: add clause 45 mdiobus accessors 2020-05-26 15:31:45 -07:00
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
dp83td510.c net: phy: dp83td510: add SQI support 2022-06-21 22:01:14 -07:00
dp83640.c dp83640: Use generic ptp_msg_is_sync() function 2022-03-07 11:31:34 +00:00
dp83640_reg.h ptp: dp83640: don't define PAGE0 2021-09-14 20:03:24 -07:00
dp83822.c net: phy: dp83822: Fix null pointer access on DP83825/DP83826 devices 2023-01-28 00:23:58 -08:00
dp83848.c net: phy: ti: remove the use of .ack_interrupt() 2020-11-25 11:18:38 -08:00
dp83867.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-17 18:30:39 -08:00
dp83869.c net: phy: add support for TI DP83561-SP phy 2021-11-19 20:13:07 -08:00
et1011c.c net: phy: remove unnecessary line continuation 2021-06-16 12:34:07 -07:00
fixed_phy.c net: phy: fixed_phy: set phy_mask before calling mdiobus_register() 2022-06-13 23:11:24 -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 net: phy: Add driver for Motorcomm yt8531 gigabit ethernet phy 2023-02-03 09:34:51 +00:00
linkmode.c net: add linkmode helper for setting flow control advertisement 2020-02-16 19:39:44 -08:00
lxt.c net: phy: correct format of block comments 2021-06-16 12:34:07 -07:00
Makefile drivers/net/phy: add driver for the onsemi NCN26000 10BASE-T1S PHY 2023-01-11 08:35:03 +00: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
marvell10g.c net: phy: marvell10g: select host interface configuration 2022-10-03 11:08:32 +01:00
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
mdio-open-alliance.h drivers/net/phy: add helpers to get/set PLCA configuration 2023-01-11 08:35:02 +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
mediatek-ge.c net: phy: mediatek: remove PHY mode check on MT7531 2022-02-15 14:21:01 +00:00
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.c net: lan78xx: fix accessing the LAN7800's internal phy specific registers from the MAC driver 2023-03-02 22:21:07 -08:00
microchip_t1.c net: phy: microchip: run phy initialization during each link update 2023-01-23 22:34:19 -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: 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 net: phy: correct format of block comments 2021-06-16 12:34:07 -07:00
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-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
phy_device.c net: phylib: get rid of unnecessary locking 2023-03-06 09:33:07 +00:00
phy_led_triggers.c net: phy: leds: Deduplicate link LED trigger registration 2020-10-30 10:43:37 -07:00
phylink.c net: phylink: support validated pause and autoneg in fixed-link 2023-02-15 10:35:27 +00: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 RTL8211F(D)(I)-VD-CG 2022-08-22 12:47:18 +01:00
rockchip.c net: phy: Demote non-compliant kernel-doc headers 2021-05-17 14:12:39 -07:00
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 net: phy: fix space alignment issues 2021-06-16 12:34:07 -07:00
swphy.c Update rmk's email address in various drivers 2020-04-21 17:50:09 +01:00
swphy.h
teranetics.c net: phy: remove genphy_no_soft_reset 2020-04-24 16:47:51 -07:00
uPD60620.c net: phy: use phy_resolve_aneg_pause() 2019-12-19 12:52:34 -08:00
vitesse.c net: phy: correct format of block comments 2021-06-16 12:34:07 -07:00
xilinx_gmii2rgmii.c net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe 2022-12-30 07:46:10 +00:00