net: hns3: keep MAC pause mode when multiple TCs are enabled
[ Upstream commit d78e5b6a6764cb6e83668806b63d74566db36399 ] Bellow HNAE3_DEVICE_VERSION_V3, MAC pause mode just support one TC, when enabled multiple TCs, force enable PFC mode. HNAE3_DEVICE_VERSION_V3 can support MAC pause mode on multiple TCs, so when enable multiple TCs, just keep MAC pause mode, and enable PFC mode just according to the user settings. Signed-off-by: Yonglong Liu <liuyonglong@huawei.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
f8ba689cb6
commit
8d3d27664e
@ -682,7 +682,7 @@ static void hclge_tm_pg_info_init(struct hclge_dev *hdev)
|
||||
}
|
||||
}
|
||||
|
||||
static void hclge_pfc_info_init(struct hclge_dev *hdev)
|
||||
static void hclge_update_fc_mode_by_dcb_flag(struct hclge_dev *hdev)
|
||||
{
|
||||
if (!(hdev->flag & HCLGE_FLAG_DCB_ENABLE)) {
|
||||
if (hdev->fc_mode_last_time == HCLGE_FC_PFC)
|
||||
@ -700,6 +700,27 @@ static void hclge_pfc_info_init(struct hclge_dev *hdev)
|
||||
}
|
||||
}
|
||||
|
||||
static void hclge_update_fc_mode(struct hclge_dev *hdev)
|
||||
{
|
||||
if (!hdev->tm_info.pfc_en) {
|
||||
hdev->tm_info.fc_mode = hdev->fc_mode_last_time;
|
||||
return;
|
||||
}
|
||||
|
||||
if (hdev->tm_info.fc_mode != HCLGE_FC_PFC) {
|
||||
hdev->fc_mode_last_time = hdev->tm_info.fc_mode;
|
||||
hdev->tm_info.fc_mode = HCLGE_FC_PFC;
|
||||
}
|
||||
}
|
||||
|
||||
static void hclge_pfc_info_init(struct hclge_dev *hdev)
|
||||
{
|
||||
if (hdev->ae_dev->dev_version >= HNAE3_DEVICE_VERSION_V3)
|
||||
hclge_update_fc_mode(hdev);
|
||||
else
|
||||
hclge_update_fc_mode_by_dcb_flag(hdev);
|
||||
}
|
||||
|
||||
static void hclge_tm_schd_info_init(struct hclge_dev *hdev)
|
||||
{
|
||||
hclge_tm_pg_info_init(hdev);
|
||||
|
Loading…
Reference in New Issue
Block a user