net: hns3: disable auto-negotiation off with 1000M setting in ethtool
The 802.3 specification does not specify the behavior of auto-negotiation off with 1000M in PHY. Therefore, some PHY compatibility issues occur. This patch forbids the setting of this unreasonable mode by ethtool in driver. Signed-off-by: Yufeng Mo <moyufeng@huawei.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
b4401a044a
commit
81c287e3dd
|
@ -773,8 +773,13 @@ static int hns3_set_link_ksettings(struct net_device *netdev,
|
|||
cmd->base.autoneg, cmd->base.speed, cmd->base.duplex);
|
||||
|
||||
/* Only support ksettings_set for netdev with phy attached for now */
|
||||
if (netdev->phydev)
|
||||
if (netdev->phydev) {
|
||||
if (cmd->base.speed == SPEED_1000 &&
|
||||
cmd->base.autoneg == AUTONEG_DISABLE)
|
||||
return -EINVAL;
|
||||
|
||||
return phy_ethtool_ksettings_set(netdev->phydev, cmd);
|
||||
}
|
||||
|
||||
if (handle->pdev->revision == 0x20)
|
||||
return -EOPNOTSUPP;
|
||||
|
|
Loading…
Reference in New Issue