diff --git a/drivers/net/ethernet/wangxun/ngbe/ngbe.h b/drivers/net/ethernet/wangxun/ngbe/ngbe.h index ab34084e5e3188a5b717c47f14af5887039d75ca..b22430f5a6b261204db925ead7b9f1d55b707954 100644 --- a/drivers/net/ethernet/wangxun/ngbe/ngbe.h +++ b/drivers/net/ethernet/wangxun/ngbe/ngbe.h @@ -25,6 +25,8 @@ #define NGBE_INTR_ALL 0x1FF +#define NGBE_DEFAULT_FCPAUSE 0xFFFF + /* TX/RX descriptor defines */ #define NGBE_DEFAULT_TXD 512 /* default ring size */ #define NGBE_DEFAULT_TX_WORK 256 @@ -542,6 +544,7 @@ struct ngbe_adapter { u32 flags; u32 flags2; unsigned long state; + enum ngbe_fc_mode last_lfc_mode; unsigned int tx_ring_count; unsigned int rx_ring_count; diff --git a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c index 83c7a27caf780ee4472d25a2fb18870826a98ef4..68d9cffc7a53a0dbf6e97836f2c62d7f185882e3 100644 --- a/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c +++ b/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c @@ -479,6 +479,15 @@ static int ngbe_sw_init(struct ngbe_adapter *adapter) adapter->flags2 |= NGBE_FLAG2_TEMP_SENSOR_CAPABLE; adapter->flags2 |= NGBE_FLAG2_EEE_CAPABLE; + /* default flow control settings */ + hw->fc.requested_mode = ngbe_fc_full; + hw->fc.current_mode = ngbe_fc_full; /* init for ethtool output */ + + adapter->last_lfc_mode = hw->fc.current_mode; + hw->fc.pause_time = NGBE_DEFAULT_FCPAUSE; + hw->fc.send_xon = true; + hw->fc.disable_fc_autoneg = false; + /* set default ring sizes */ adapter->tx_ring_count = NGBE_DEFAULT_TXD; adapter->rx_ring_count = NGBE_DEFAULT_RXD;