linux-stable/drivers/net/phy
Oleksij Rempel 986a7fa4b4 phy: dp83td510: Utilize ALCD for cable length measurement when link is active
In industrial environments where 10BaseT1L PHYs are replacing existing
field bus systems like CAN, it's often essential to retain the existing
cable infrastructure. After installation, collecting metrics such as
cable length is crucial for assessing the quality of the infrastructure.
Traditionally, TDR (Time Domain Reflectometry) is used for this purpose.
However, TDR requires interrupting the link, and if the link partner
remains active, the TDR measurement will fail.

Unlike multi-pair systems, where TDR can be attempted during the MDI-X
switching window, 10BaseT1L systems face greater challenges. The TDR
sequence on 10BaseT1L is longer and coincides with uninterrupted
autonegotiation pulses, making TDR impossible when the link partner is
active.

The DP83TD510 PHY provides an alternative through ALCD (Active Link
Cable Diagnostics), which allows for cable length measurement without
disrupting an active link. Since a live link indicates no short or open
cable states, ALCD can be used effectively to gather cable length
information.

Enhance the dp83td510 driver by:
- Leveraging ALCD to measure cable length when the link is active.
- Bypassing TDR when a link is detected, as ALCD provides the required
  information without disruption.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20240822120703.1393130-4-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-08-26 09:33:58 -07:00
..
aquantia net: phy: aquantia: only poll GLOBAL_CFG regs on aqr113, aqr113c and aqr115c 2024-07-30 18:27:58 -07:00
mscc net: Add struct kernel_ethtool_ts_info 2024-07-15 08:02:26 -07:00
qcom net: phy: add helpers to handle sfp phy connect/disconnect 2024-08-23 13:04:34 +01:00
adin1100.c net: phy: adin1100: Add interrupt support for link change 2024-01-31 16:22:29 -08:00
adin.c net: phy: adin: allow control of Fast Link Down 2023-11-29 19:49:38 -08:00
air_en8811h.c net: phy: air_en8811h: reset netdev rules when LED is set manually 2024-05-13 13:51:17 -07:00
amd.c net: phy: amd: Support the Altima AMI101L 2023-10-03 11:44:09 +02:00
ax88796b_rust.rs net: phy: add Rust Asix PHY driver 2023-12-15 09:35:50 +00:00
ax88796b.c net: phy: fix regression with AX88772A PHY driver 2023-09-19 17:03:44 +02:00
bcm7xxx.c net: phy: bcm7xxx: Add missing 16nm EPHY statistics 2023-10-18 18:13:13 -07:00
bcm63xx.c
bcm87xx.c net: phy: fill in missing MODULE_DESCRIPTION()s 2023-11-01 21:50:56 -07:00
bcm54140.c net: phy: extend PHY package API to support multiple global address 2023-12-17 20:10:07 +00:00
bcm84881.c net: phy: bcm84881: fill in possible_interfaces 2023-11-27 18:04:12 -08:00
bcm-cygnus.c
bcm-phy-lib.c net: phy: bcm-phy-lib: Implement BroadR-Reach link modes 2024-07-14 20:38:35 -07:00
bcm-phy-lib.h net: phy: bcm-phy-lib: Implement BroadR-Reach link modes 2024-07-14 20:38:35 -07:00
bcm-phy-ptp.c net: Add struct kernel_ethtool_ts_info 2024-07-15 08:02:26 -07:00
broadcom.c net: phy: bcm-phy-lib: Implement BroadR-Reach link modes 2024-07-14 20:38:35 -07:00
cicada.c
cortina.c
davicom.c
dp83tc811.c
dp83td510.c phy: dp83td510: Utilize ALCD for cable length measurement when link is active 2024-08-26 09:33:58 -07:00
dp83tg720.c net: phy: dp83tg720: Add cable testing support 2024-08-16 10:16:26 -07:00
dp83640_reg.h
dp83640.c net: Add struct kernel_ethtool_ts_info 2024-07-15 08:02:26 -07:00
dp83822.c net: phy: dp8382x: keep WOL settings across suspends 2024-04-09 16:57:55 -07:00
dp83848.c
dp83867.c net: phy: dp83867: Add support for active-low LEDs 2024-02-02 10:12:21 +00:00
dp83869.c net: phy: dp83869: Fix MII mode failure 2024-04-25 11:25:07 +01:00
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: dp83tg720: Add cable testing support 2024-08-16 10:16:26 -07:00
linkmode.c
lxt.c
Makefile net: phy: Introduce ethernet link topology representation 2024-08-23 13:04:34 +01:00
marvell10g.c net: phy: add helpers to handle sfp phy connect/disconnect 2024-08-23 13:04:34 +01:00
marvell-88q2xxx.c net: phy: marvell-88q2xxx: add support for Rev B1 and B2 2024-05-08 12:18:25 +01:00
marvell-88x2222.c net: phy: add helpers to handle sfp phy connect/disconnect 2024-08-23 13:04:34 +01:00
marvell.c net: phy: add helpers to handle sfp phy connect/disconnect 2024-08-23 13:04:34 +01:00
mdio_bus.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
mdio_device.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
mdio_devres.c net: fill in MODULE_DESCRIPTION()s for mdio_devres 2024-02-15 08:03:46 -08: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-soc.c net: phy: mediatek-ge-soc: follow netdev LED trigger semantics 2024-04-24 11:50:49 +01:00
mediatek-ge.c net: phy: mediatek-ge: do not disable EEE advertisement 2024-04-17 10:44:20 +01:00
meson-gxl.c net: phy: meson-gxl: enable edpd tunable support for G12A internal PHY 2023-04-04 18:56:01 -07:00
micrel.c net: phy: micrel: Fix the KSZ9131 MDI-X status issue 2024-07-30 15:10:53 -07:00
microchip_t1.c net: phy: microchip_t1: Adds support for lan887x phy 2024-08-26 09:21:15 -07:00
microchip_t1s.c net: phy: microchip_t1s: add support for Microchip LAN865x Rev.B0 PHYs 2023-05-30 11:49:55 +02:00
microchip.c net: phy: microchip: lan937x: add support for 100BaseTX PHY 2024-07-09 15:12:04 +02:00
mii_timestamper.c
motorcomm.c net: phy: motorcomm: Add pad drive strength cfg support 2023-07-24 10:36:45 +01:00
mxl-gpy.c net: phy: mxl-gpy: Remove interrupt mask clearing from config_init 2024-06-18 12:04:23 +02: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-macsec.c net: phy: nxp-c45-tja11xx: implement mdo_insert_tx_tag 2023-12-27 13:08:10 +00:00
nxp-c45-tja11xx.c net: Add struct kernel_ethtool_ts_info 2024-07-15 08:02:26 -07:00
nxp-c45-tja11xx.h net: phy: nxp-c45-tja11xx: add MACsec support 2023-12-27 13:08:10 +00:00
nxp-cbtx.c net: phy: add basic driver for NXP CBTX PHY 2023-04-21 20:04:09 -07:00
nxp-tja11xx.c net: Convert some ethtool_sprintf() to ethtool_puts() 2023-12-08 10:56:25 +00:00
open_alliance_helpers.c phy: Add Open Alliance helpers for the PHY framework 2024-08-16 10:16:26 -07:00
open_alliance_helpers.h phy: Add Open Alliance helpers for the PHY framework 2024-08-16 10:16:26 -07:00
phy_device.c net: phy: add helpers to handle sfp phy connect/disconnect 2024-08-23 13:04:34 +01:00
phy_led_triggers.c
phy_link_topology.c net: phy: Introduce ethernet link topology representation 2024-08-23 13:04:34 +01:00
phy-c45.c net: phy: Immediately call adjust_link if only tx_lpi_enabled changes 2024-03-05 19:21:17 -08:00
phy-core.c net: phy: bcm54811: New link mode for BroadR-Reach 2024-07-14 20:38:34 -07:00
phy.c net: phy: Add phy library support to check supported list when autoneg is enabled 2024-08-26 09:21:15 -07:00
phylink.c net: sfp: pass the phy_device when disconnecting an sfp module's PHY 2024-08-23 13:04:34 +01:00
qsemi.c
realtek.c net: phy: realtek: Fix setting of PHY LEDs Mode B bit on RTL8211F 2024-08-22 13:00:05 +02:00
rockchip.c
sfp-bus.c net: sfp: Add helper to return the SFP bus name 2024-08-23 13:04:34 +01:00
sfp.c net: sfp: Always call sfp_sm_mod_remove() on remove 2024-06-06 17:34:03 -07:00
sfp.h net: sfp: Remove unused function declaration sfp_link_configure() 2023-08-07 08:53:55 +01:00
smsc.c net: Convert some ethtool_sprintf() to ethtool_puts() 2023-12-08 10:56:25 +00:00
spi_ks8995.c net: phy: ks8995: drop of_match_ptr for ID table 2023-03-15 08:11:02 +00:00
ste10Xp.c
stubs.c net: phy: provide phylib stubs for hardware timestamping operations 2023-08-02 19:11:06 -07:00
swphy.c
swphy.h
teranetics.c
uPD60620.c
vitesse.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-08-15 17:18:52 -07:00
xilinx_gmii2rgmii.c net: phy: xilinx-gmii2rgmii: Adopt clock support 2024-05-29 13:10:57 +01:00