Commit f438bfe9 authored by Jian Shen's avatar Jian Shen Committed by David S. Miller

net: hns3: fix for FEC configuration

The FEC capbility may be changed with port speed changes. Driver
needs to read the active FEC mode, and update FEC capability
when port speed changes.

Fixes: 7e6ec914 ("net: hns3: add support for FEC encoding control")
Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d93ed94f
...@@ -2512,6 +2512,9 @@ static void hclge_update_link_status(struct hclge_dev *hdev) ...@@ -2512,6 +2512,9 @@ static void hclge_update_link_status(struct hclge_dev *hdev)
static void hclge_update_port_capability(struct hclge_mac *mac) static void hclge_update_port_capability(struct hclge_mac *mac)
{ {
/* update fec ability by speed */
hclge_convert_setting_fec(mac);
/* firmware can not identify back plane type, the media type /* firmware can not identify back plane type, the media type
* read from configuration can help deal it * read from configuration can help deal it
*/ */
...@@ -2584,6 +2587,10 @@ static int hclge_get_sfp_info(struct hclge_dev *hdev, struct hclge_mac *mac) ...@@ -2584,6 +2587,10 @@ static int hclge_get_sfp_info(struct hclge_dev *hdev, struct hclge_mac *mac)
mac->speed_ability = le32_to_cpu(resp->speed_ability); mac->speed_ability = le32_to_cpu(resp->speed_ability);
mac->autoneg = resp->autoneg; mac->autoneg = resp->autoneg;
mac->support_autoneg = resp->autoneg_ability; mac->support_autoneg = resp->autoneg_ability;
if (!resp->active_fec)
mac->fec_mode = 0;
else
mac->fec_mode = BIT(resp->active_fec);
} else { } else {
mac->speed_type = QUERY_SFP_SPEED; mac->speed_type = QUERY_SFP_SPEED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment