From 73fc9c4882439b3ea4f185264e1c6d969d61b067 Mon Sep 17 00:00:00 2001 From: Huazhong Tan Date: Fri, 18 Jan 2019 16:13:07 +0800 Subject: net: hns3: add interface hclge_tm_bp_setup Provide a common interface to complete the back pressure settings of all enabled TCs. So other functions directly call this interface to complete the corresponding operation. Signed-off-by: Huazhong Tan Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: David S. Miller --- .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c') diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c index 00458da67503..fda91e536a39 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c @@ -1228,10 +1228,23 @@ static int hclge_mac_pause_setup_hw(struct hclge_dev *hdev) return hclge_mac_pause_en_cfg(hdev, tx_en, rx_en); } +static int hclge_tm_bp_setup(struct hclge_dev *hdev) +{ + int ret = 0; + int i; + + for (i = 0; i < hdev->tm_info.num_tc; i++) { + ret = hclge_bp_setup_hw(hdev, i); + if (ret) + return ret; + } + + return ret; +} + int hclge_pause_setup_hw(struct hclge_dev *hdev) { int ret; - u8 i; ret = hclge_pause_param_setup_hw(hdev); if (ret) @@ -1250,13 +1263,7 @@ int hclge_pause_setup_hw(struct hclge_dev *hdev) if (ret) dev_warn(&hdev->pdev->dev, "set pfc pause failed:%d\n", ret); - for (i = 0; i < hdev->tm_info.num_tc; i++) { - ret = hclge_bp_setup_hw(hdev, i); - if (ret) - return ret; - } - - return 0; + return hclge_tm_bp_setup(hdev); } void hclge_tm_prio_tc_info_update(struct hclge_dev *hdev, u8 *prio_tc) -- cgit v1.2.3-59-g8ed1b