net: hns3: refactor hclge_mac_link_status_wait for interface reuse
commit 08469dacfad25428b66549716811807203744f4f upstream. Some nic configurations could only be performed after link is down. So this patch refactor this API for reuse. Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: Jijie Shao <shaojijie@huawei.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Link: https://lore.kernel.org/r/20230807113452.474224-3-shaojijie@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
758dbcfb25
commit
667ce6a0ff
@ -72,6 +72,8 @@ static void hclge_restore_hw_table(struct hclge_dev *hdev);
|
||||
static void hclge_sync_promisc_mode(struct hclge_dev *hdev);
|
||||
static void hclge_sync_fd_table(struct hclge_dev *hdev);
|
||||
static void hclge_update_fec_stats(struct hclge_dev *hdev);
|
||||
static int hclge_mac_link_status_wait(struct hclge_dev *hdev, int link_ret,
|
||||
int wait_cnt);
|
||||
|
||||
static struct hnae3_ae_algo ae_algo;
|
||||
|
||||
@ -7656,10 +7658,9 @@ static void hclge_phy_link_status_wait(struct hclge_dev *hdev,
|
||||
} while (++i < HCLGE_PHY_LINK_STATUS_NUM);
|
||||
}
|
||||
|
||||
static int hclge_mac_link_status_wait(struct hclge_dev *hdev, int link_ret)
|
||||
static int hclge_mac_link_status_wait(struct hclge_dev *hdev, int link_ret,
|
||||
int wait_cnt)
|
||||
{
|
||||
#define HCLGE_MAC_LINK_STATUS_NUM 100
|
||||
|
||||
int link_status;
|
||||
int i = 0;
|
||||
int ret;
|
||||
@ -7672,13 +7673,15 @@ static int hclge_mac_link_status_wait(struct hclge_dev *hdev, int link_ret)
|
||||
return 0;
|
||||
|
||||
msleep(HCLGE_LINK_STATUS_MS);
|
||||
} while (++i < HCLGE_MAC_LINK_STATUS_NUM);
|
||||
} while (++i < wait_cnt);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
static int hclge_mac_phy_link_status_wait(struct hclge_dev *hdev, bool en,
|
||||
bool is_phy)
|
||||
{
|
||||
#define HCLGE_MAC_LINK_STATUS_NUM 100
|
||||
|
||||
int link_ret;
|
||||
|
||||
link_ret = en ? HCLGE_LINK_STATUS_UP : HCLGE_LINK_STATUS_DOWN;
|
||||
@ -7686,7 +7689,8 @@ static int hclge_mac_phy_link_status_wait(struct hclge_dev *hdev, bool en,
|
||||
if (is_phy)
|
||||
hclge_phy_link_status_wait(hdev, link_ret);
|
||||
|
||||
return hclge_mac_link_status_wait(hdev, link_ret);
|
||||
return hclge_mac_link_status_wait(hdev, link_ret,
|
||||
HCLGE_MAC_LINK_STATUS_NUM);
|
||||
}
|
||||
|
||||
static int hclge_set_app_loopback(struct hclge_dev *hdev, bool en)
|
||||
|
Loading…
Reference in New Issue
Block a user