First, there are some SFP modules that only uses RX_LOS for link indication. Add check that SFP link is operational before actual read of link status.
Second, it is invalid to set 10G speed without autonegotiation, according to phy_ethtool_ksettings_set(). Implement switching between 10GBase-R and 1000Base-X/SGMII if autonegotiation can't complete but there is signal in line. Ivan Bornyakov (2): net: phy: marvell-88x2222: check that link is operational net: phy: marvell-88x2222: swap 1G/10G modes on autoneg drivers/net/phy/marvell-88x2222.c | 296 +++++++++++++++++++----------- 1 file changed, 191 insertions(+), 105 deletions(-) -- 2.26.3