Skip to content

Commit c46e78b

Browse files
vladimirolteandavem330
authored andcommitted
net: pcs: xpcs: fix C73 AN not getting enabled
The XPCS expects clause 73 (copper backplane) autoneg to follow the ethtool autoneg bit. It actually did that until the blamed commit inaptly replaced state->an_enabled (coming from ethtool) with phylink_autoneg_inband() (coming from the device tree or struct phylink_config), as part of an unrelated phylink_pcs API conversion. Russell King suggests that state->an_enabled from the original code was just a proxy for the ethtool Autoneg bit, and that the correct way of restoring the functionality is to check for this bit in the advertising mask. Fixes: 1105974 ("net: pcs: xpcs: convert to phylink_pcs_ops") Link: https://lore.kernel.org/netdev/[email protected]/ Suggested-by: Russell King (Oracle) <[email protected]> Signed-off-by: Vladimir Oltean <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 6082914 commit c46e78b

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/net/pcs/pcs-xpcs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,7 @@ int xpcs_do_config(struct dw_xpcs *xpcs, phy_interface_t interface,
873873

874874
switch (compat->an_mode) {
875875
case DW_AN_C73:
876-
if (phylink_autoneg_inband(mode)) {
876+
if (test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, advertising)) {
877877
ret = xpcs_config_aneg_c73(xpcs, compat);
878878
if (ret)
879879
return ret;

0 commit comments

Comments
 (0)