net: hns: Adjust the SBM module buffer threshold
authorKejian Yan <yankejian@huawei.com>
Sat, 1 Apr 2017 11:03:46 +0000 (12:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Apr 2017 21:48:43 +0000 (14:48 -0700)
HNS needs SMB Buffers to store at least two packets after sending
pause frame because of the link delay. The MTU of HNS is 9728. As
the processor user manual described, the SBM buffer threshold should
be modified.

Reported-by: Ping Zhang <zhangping5@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
Reviewed-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c

index abd8aecdc5a8e6fec6f8db4744e457186ff3ec54..d07b4fe45a4499c2f35c1131d1dbf428973536dd 100644 (file)
@@ -510,10 +510,10 @@ static void hns_dsafv2_sbm_bp_wl_cfg(struct dsaf_device *dsaf_dev)
                o_sbm_bp_cfg = dsaf_read_dev(dsaf_dev, reg);
                dsaf_set_field(o_sbm_bp_cfg,
                               DSAFV2_SBM_CFG3_SET_BUF_NUM_NO_PFC_M,
-                              DSAFV2_SBM_CFG3_SET_BUF_NUM_NO_PFC_S, 48);
+                              DSAFV2_SBM_CFG3_SET_BUF_NUM_NO_PFC_S, 55);
                dsaf_set_field(o_sbm_bp_cfg,
                               DSAFV2_SBM_CFG3_RESET_BUF_NUM_NO_PFC_M,
-                              DSAFV2_SBM_CFG3_RESET_BUF_NUM_NO_PFC_S, 80);
+                              DSAFV2_SBM_CFG3_RESET_BUF_NUM_NO_PFC_S, 110);
                dsaf_write_dev(dsaf_dev, reg, o_sbm_bp_cfg);
 
                /* for no enable pfc mode */
@@ -521,10 +521,10 @@ static void hns_dsafv2_sbm_bp_wl_cfg(struct dsaf_device *dsaf_dev)
                o_sbm_bp_cfg = dsaf_read_dev(dsaf_dev, reg);
                dsaf_set_field(o_sbm_bp_cfg,
                               DSAFV2_SBM_CFG4_SET_BUF_NUM_NO_PFC_M,
-                              DSAFV2_SBM_CFG4_SET_BUF_NUM_NO_PFC_S, 192);
+                              DSAFV2_SBM_CFG4_SET_BUF_NUM_NO_PFC_S, 128);
                dsaf_set_field(o_sbm_bp_cfg,
                               DSAFV2_SBM_CFG4_RESET_BUF_NUM_NO_PFC_M,
-                              DSAFV2_SBM_CFG4_RESET_BUF_NUM_NO_PFC_S, 240);
+                              DSAFV2_SBM_CFG4_RESET_BUF_NUM_NO_PFC_S, 192);
                dsaf_write_dev(dsaf_dev, reg, o_sbm_bp_cfg);
        }