mirror-linux/drivers/net/phy
Josua Mayer 41103f7f68 net: sfp: handle 100G/25G active optical cables in sfp_parse_support
[ Upstream commit db1a6ad77c ]

Handle extended compliance code 0x1 (SFF8024_ECC_100G_25GAUI_C2M_AOC)
for active optical cables supporting 25G and 100G speeds.

Since the specification makes no statement about transmitter range, and
as the specific sfp module that had been tested features only 2m fiber -
short-range (SR) modes are selected.

The 100G speed is irrelevant because it would require multiple fibers /
multiple SFP28 modules combined under one netdev.
sfp-bus.c only handles a single module per netdev, so only 25Gbps modes
are selected.

sfp_parse_support already handles SFF8024_ECC_100GBASE_SR4_25GBASE_SR
with compatible properties, however that entry is a contradiction in
itself since with SFP(28) 100GBASE_SR4 is impossible - that would likely
be a mode for qsfp modules only.

Add a case for SFF8024_ECC_100G_25GAUI_C2M_AOC selecting 25gbase-r
interface mode and 25000baseSR link mode.
Also enforce SFP28 bitrate limits on the values read from sfp eeprom as
requested by Russell King.

Tested with fs.com S28-AO02 AOC SFP28 module.

Signed-off-by: Josua Mayer <josua@solid-run.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-09-13 09:42:25 +02:00
..
mscc net: phy: mscc: enable VSC8501/2 RGMII RX clock 2023-06-05 09:26:20 +02:00
Kconfig
Makefile
adin.c
adin1100.c
amd.c
aquantia.h
aquantia_hwmon.c
aquantia_main.c
at803x.c net: phy: at803x: fix the wol setting functions 2023-08-23 17:52:18 +02:00
ax88796b.c
bcm-cygnus.c
bcm-phy-lib.c
bcm-phy-lib.h net: phy: bcm7xx: Correct read from expansion register 2023-05-24 17:32:31 +01:00
bcm-phy-ptp.c
bcm7xxx.c net: phy: bcm7xx: Correct read from expansion register 2023-05-24 17:32:31 +01:00
bcm63xx.c
bcm87xx.c
bcm54140.c
bcm84881.c
broadcom.c net: phy: broadcom: stub c45 read/write for 54810 2023-08-23 17:52:34 +02:00
cicada.c
cortina.c
davicom.c
dp83tc811.c
dp83td510.c net: phy: dp83td510: fix kernel stall during netboot in DP83TD510E PHY driver 2023-07-23 13:49:32 +02:00
dp83640.c
dp83640_reg.h
dp83822.c net: phy: dp83822: Fix null pointer access on DP83825/DP83826 devices 2023-02-09 11:28:05 +01:00
dp83848.c
dp83867.c Revert "net: phy: dp83867: perform soft reset and retain established link" 2023-06-28 11:12:33 +02:00
dp83869.c net: phy: dp83869: fix default value for tx-/rx-internal-delay 2023-04-06 12:10:53 +02:00
et1011c.c
fixed_phy.c
icplus.c
intel-xway.c
linkmode.c
lxt.c
marvell-88x2222.c
marvell.c net: phy: marvell: add sleep time after enabling the loopback bit 2022-11-15 13:14:46 +01:00
marvell10g.c net: phy: marvell10g: fix 88x3310 power up 2023-08-03 10:23:58 +02:00
mdio-boardinfo.c
mdio-boardinfo.h
mdio_bus.c net: mdio: validate parameter addr in mdiobus_get_phy() 2023-02-01 08:34:19 +01: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-30 12:49:05 +02:00
mediatek-ge.c
meson-gxl.c net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY 2023-02-14 19:11:44 +01:00
micrel.c
microchip.c net: lan78xx: fix accessing the LAN7800's internal phy specific registers from the MAC driver 2023-03-17 08:50:24 +01:00
microchip_t1.c
mii_timestamper.c
motorcomm.c
mxl-gpy.c net: phy: mxl-gpy: add MDINT workaround 2022-12-07 20:04:11 -08:00
national.c
nxp-c45-tja11xx.c net: phy: nxp-c45-tja11xx: fix unsigned long multiplication overflow 2023-04-20 12:35:13 +02:00
nxp-tja11xx.c
phy-c45.c
phy-core.c
phy.c net: phy: Ensure state transitions are processed from phy_stop() 2023-03-30 12:49:04 +02:00
phy_device.c net: phy: fix IRQ-based wake-on-lan over hibernate / power off 2023-08-23 17:52:33 +02:00
phy_led_triggers.c
phylink.c net: phylink: use a dedicated helper to parse usgmii control word 2023-06-21 16:01:00 +02:00
qsemi.c
realtek.c
rockchip.c
sfp-bus.c net: sfp: handle 100G/25G active optical cables in sfp_parse_support 2023-09-13 09:42:25 +02:00
sfp.c net: sfp: fix state loss when updating state_hw_mask 2023-06-14 11:15:15 +02:00
sfp.h
smsc.c net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails 2023-03-22 13:33:46 +01:00
spi_ks8995.c
ste10Xp.c
swphy.c
swphy.h
teranetics.c
uPD60620.c
vitesse.c
xilinx_gmii2rgmii.c net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe 2023-01-12 12:02:20 +01:00