}
 }
 
-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)
        }
 }
 
+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);