aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_82598.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_82598.c')
-rw-r--r--drivers/net/ixgbe/ixgbe_82598.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c
index 8179e5060a18..bb417d746a16 100644
--- a/drivers/net/ixgbe/ixgbe_82598.c
+++ b/drivers/net/ixgbe/ixgbe_82598.c
@@ -1242,6 +1242,47 @@ static void ixgbe_set_lan_id_multi_port_pcie_82598(struct ixgbe_hw *hw)
1242 } 1242 }
1243} 1243}
1244 1244
1245/**
1246 * ixgbe_set_rxpba_82598 - Configure packet buffers
1247 * @hw: pointer to hardware structure
1248 * @dcb_config: pointer to ixgbe_dcb_config structure
1249 *
1250 * Configure packet buffers.
1251 */
1252static void ixgbe_set_rxpba_82598(struct ixgbe_hw *hw, int num_pb, u32 headroom,
1253 int strategy)
1254{
1255 u32 rxpktsize = IXGBE_RXPBSIZE_64KB;
1256 u8 i = 0;
1257
1258 if (!num_pb)
1259 return;
1260
1261 /* Setup Rx packet buffer sizes */
1262 switch (strategy) {
1263 case PBA_STRATEGY_WEIGHTED:
1264 /* Setup the first four at 80KB */
1265 rxpktsize = IXGBE_RXPBSIZE_80KB;
1266 for (; i < 4; i++)
1267 IXGBE_WRITE_REG(hw, IXGBE_RXPBSIZE(i), rxpktsize);
1268 /* Setup the last four at 48KB...don't re-init i */
1269 rxpktsize = IXGBE_RXPBSIZE_48KB;
1270 /* Fall Through */
1271 case PBA_STRATEGY_EQUAL:
1272 default:
1273 /* Divide the remaining Rx packet buffer evenly among the TCs */
1274 for (; i < IXGBE_MAX_PACKET_BUFFERS; i++)
1275 IXGBE_WRITE_REG(hw, IXGBE_RXPBSIZE(i), rxpktsize);
1276 break;
1277 }
1278
1279 /* Setup Tx packet buffer sizes */
1280 for (i = 0; i < IXGBE_MAX_PACKET_BUFFERS; i++)
1281 IXGBE_WRITE_REG(hw, IXGBE_TXPBSIZE(i), IXGBE_TXPBSIZE_40KB);
1282
1283 return;
1284}
1285
1245static struct ixgbe_mac_operations mac_ops_82598 = { 1286static struct ixgbe_mac_operations mac_ops_82598 = {
1246 .init_hw = &ixgbe_init_hw_generic, 1287 .init_hw = &ixgbe_init_hw_generic,
1247 .reset_hw = &ixgbe_reset_hw_82598, 1288 .reset_hw = &ixgbe_reset_hw_82598,
@@ -1257,6 +1298,7 @@ static struct ixgbe_mac_operations mac_ops_82598 = {
1257 .read_analog_reg8 = &ixgbe_read_analog_reg8_82598, 1298 .read_analog_reg8 = &ixgbe_read_analog_reg8_82598,
1258 .write_analog_reg8 = &ixgbe_write_analog_reg8_82598, 1299 .write_analog_reg8 = &ixgbe_write_analog_reg8_82598,
1259 .setup_link = &ixgbe_setup_mac_link_82598, 1300 .setup_link = &ixgbe_setup_mac_link_82598,
1301 .set_rxpba = &ixgbe_set_rxpba_82598,
1260 .check_link = &ixgbe_check_mac_link_82598, 1302 .check_link = &ixgbe_check_mac_link_82598,
1261 .get_link_capabilities = &ixgbe_get_link_capabilities_82598, 1303 .get_link_capabilities = &ixgbe_get_link_capabilities_82598,
1262 .led_on = &ixgbe_led_on_generic, 1304 .led_on = &ixgbe_led_on_generic,