]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: phy: micrel: fix KSZ8081/KSZ8091 cable test
authorFlorian Larysch <fl@n621.de>
Wed, 23 Jul 2025 22:20:42 +0000 (00:20 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 25 Jul 2025 20:43:24 +0000 (13:43 -0700)
Commit 21b688dabecb ("net: phy: micrel: Cable Diag feature for lan8814
phy") introduced cable_test support for the LAN8814 that reuses parts of
the KSZ886x logic and introduced the cable_diag_reg and pair_mask
parameters to account for differences between those chips.

However, it did not update the ksz8081_type struct, so those members are
now 0, causing no pairs to be tested in ksz886x_cable_test_get_status
and ksz886x_cable_test_wait_for_completion to poll the wrong register
for the affected PHYs (Basic Control/Reset, which is 0 in normal
operation) and exit immediately.

Fix this by setting both struct members accordingly.

Fixes: 21b688dabecb ("net: phy: micrel: Cable Diag feature for lan8814 phy")
Cc: stable@vger.kernel.org
Signed-off-by: Florian Larysch <fl@n621.de>
Link: https://patch.msgid.link/20250723222250.13960-1-fl@n621.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/micrel.c

index 64aa03aed770098744f11cfbed8d9d47602d6223..50c6a4e8cfa16eaf24d6ced801c93b94b63c20cf 100644 (file)
@@ -472,6 +472,8 @@ static const struct kszphy_type ksz8051_type = {
 
 static const struct kszphy_type ksz8081_type = {
        .led_mode_reg           = MII_KSZPHY_CTRL_2,
+       .cable_diag_reg         = KSZ8081_LMD,
+       .pair_mask              = KSZPHY_WIRE_PAIR_MASK,
        .has_broadcast_disable  = true,
        .has_nand_tree_disable  = true,
        .has_rmii_ref_clk_sel   = true,