net: hns3: fix port setting handle for fibre port
For hardware doesn't support use specified speed and duplex
to negotiate, it's unnecessary to check and modify the port
speed and duplex for fibre port when autoneg is on.
Fixes: 22f48e24a2
("net: hns3: add autoneg and change speed support for fibre port")
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1a92497dc3
commit
24283ece5a
|
@ -726,6 +726,12 @@ static int hns3_check_ksettings_param(const struct net_device *netdev,
|
|||
u8 duplex;
|
||||
int ret;
|
||||
|
||||
/* hw doesn't support use specified speed and duplex to negotiate,
|
||||
* unnecessary to check them when autoneg on.
|
||||
*/
|
||||
if (cmd->base.autoneg)
|
||||
return 0;
|
||||
|
||||
if (ops->get_ksettings_an_result) {
|
||||
ops->get_ksettings_an_result(handle, &autoneg, &speed, &duplex);
|
||||
if (cmd->base.autoneg == autoneg && cmd->base.speed == speed &&
|
||||
|
@ -787,6 +793,15 @@ static int hns3_set_link_ksettings(struct net_device *netdev,
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* hw doesn't support use specified speed and duplex to negotiate,
|
||||
* ignore them when autoneg on.
|
||||
*/
|
||||
if (cmd->base.autoneg) {
|
||||
netdev_info(netdev,
|
||||
"autoneg is on, ignore the speed and duplex\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ops->cfg_mac_speed_dup_h)
|
||||
ret = ops->cfg_mac_speed_dup_h(handle, cmd->base.speed,
|
||||
cmd->base.duplex);
|
||||
|
|
Loading…
Reference in New Issue