aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
authorJohn Fastabend <john.r.fastabend@intel.com>2011-05-02 08:34:10 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-06-21 04:18:55 -0400
commit80605c6513207344d00b32e8d1e64bd34fdf1358 (patch)
tree865b63b591278b0b8abef0bbe0e4a4f4a48951b8 /drivers/net/ixgbe/ixgbe_main.c
parent1fcd86b51179518f7e69164e37353fb59cd6301e (diff)
ixgbe: consolidate packet buffer allocation
Consolidate packet buffer allocation currently being done in the DCB path and main path. This allows the feature set and packet buffer requirements to be done once. This is prep work to allow DCB to coexist with other features namely, flow director. CC: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 06cfaf31bcf3..fba1e323495e 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -3780,12 +3780,27 @@ static void ixgbe_configure_dcb(struct ixgbe_adapter *adapter)
3780} 3780}
3781 3781
3782#endif 3782#endif
3783
3784static void ixgbe_configure_pb(struct ixgbe_adapter *adapter)
3785{
3786 int hdrm = 0;
3787 int num_tc = netdev_get_num_tc(adapter->netdev);
3788 struct ixgbe_hw *hw = &adapter->hw;
3789
3790 if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE ||
3791 adapter->flags & IXGBE_FLAG_FDIR_PERFECT_CAPABLE)
3792 hdrm = 64 << adapter->fdir_pballoc;
3793
3794 hw->mac.ops.set_rxpba(&adapter->hw, num_tc, hdrm, PBA_STRATEGY_EQUAL);
3795}
3796
3783static void ixgbe_configure(struct ixgbe_adapter *adapter) 3797static void ixgbe_configure(struct ixgbe_adapter *adapter)
3784{ 3798{
3785 struct net_device *netdev = adapter->netdev; 3799 struct net_device *netdev = adapter->netdev;
3786 struct ixgbe_hw *hw = &adapter->hw; 3800 struct ixgbe_hw *hw = &adapter->hw;
3787 int i; 3801 int i;
3788 3802
3803 ixgbe_configure_pb(adapter);
3789#ifdef CONFIG_IXGBE_DCB 3804#ifdef CONFIG_IXGBE_DCB
3790 ixgbe_configure_dcb(adapter); 3805 ixgbe_configure_dcb(adapter);
3791#endif 3806#endif
@@ -5251,7 +5266,6 @@ static int __devinit ixgbe_sw_init(struct ixgbe_adapter *adapter)
5251 } 5266 }
5252 adapter->dcb_cfg.bw_percentage[DCB_TX_CONFIG][0] = 100; 5267 adapter->dcb_cfg.bw_percentage[DCB_TX_CONFIG][0] = 100;
5253 adapter->dcb_cfg.bw_percentage[DCB_RX_CONFIG][0] = 100; 5268 adapter->dcb_cfg.bw_percentage[DCB_RX_CONFIG][0] = 100;
5254 adapter->dcb_cfg.rx_pba_cfg = pba_equal;
5255 adapter->dcb_cfg.pfc_mode_enable = false; 5269 adapter->dcb_cfg.pfc_mode_enable = false;
5256 adapter->dcb_set_bitmap = 0x00; 5270 adapter->dcb_set_bitmap = 0x00;
5257 adapter->dcbx_cap = DCB_CAP_DCBX_HOST | DCB_CAP_DCBX_VER_CEE; 5271 adapter->dcbx_cap = DCB_CAP_DCBX_HOST | DCB_CAP_DCBX_VER_CEE;