aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index a5d9cc5bb257..c5ffe1dd3fcd 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -1334,6 +1334,25 @@ static void ixgbevf_init_last_counter_stats(struct ixgbevf_adapter *adapter)
1334 adapter->stats.base_vfmprc = adapter->stats.last_vfmprc; 1334 adapter->stats.base_vfmprc = adapter->stats.last_vfmprc;
1335} 1335}
1336 1336
1337static void ixgbevf_negotiate_api(struct ixgbevf_adapter *adapter)
1338{
1339 struct ixgbe_hw *hw = &adapter->hw;
1340 int api[] = { ixgbe_mbox_api_10,
1341 ixgbe_mbox_api_unknown };
1342 int err = 0, idx = 0;
1343
1344 spin_lock(&adapter->mbx_lock);
1345
1346 while (api[idx] != ixgbe_mbox_api_unknown) {
1347 err = ixgbevf_negotiate_api_version(hw, api[idx]);
1348 if (!err)
1349 break;
1350 idx++;
1351 }
1352
1353 spin_unlock(&adapter->mbx_lock);
1354}
1355
1337static void ixgbevf_up_complete(struct ixgbevf_adapter *adapter) 1356static void ixgbevf_up_complete(struct ixgbevf_adapter *adapter)
1338{ 1357{
1339 struct net_device *netdev = adapter->netdev; 1358 struct net_device *netdev = adapter->netdev;
@@ -1399,6 +1418,8 @@ void ixgbevf_up(struct ixgbevf_adapter *adapter)
1399{ 1418{
1400 struct ixgbe_hw *hw = &adapter->hw; 1419 struct ixgbe_hw *hw = &adapter->hw;
1401 1420
1421 ixgbevf_negotiate_api(adapter);
1422
1402 ixgbevf_configure(adapter); 1423 ixgbevf_configure(adapter);
1403 1424
1404 ixgbevf_up_complete(adapter); 1425 ixgbevf_up_complete(adapter);
@@ -2388,6 +2409,8 @@ static int ixgbevf_open(struct net_device *netdev)
2388 } 2409 }
2389 } 2410 }
2390 2411
2412 ixgbevf_negotiate_api(adapter);
2413
2391 /* allocate transmit descriptors */ 2414 /* allocate transmit descriptors */
2392 err = ixgbevf_setup_all_tx_resources(adapter); 2415 err = ixgbevf_setup_all_tx_resources(adapter);
2393 if (err) 2416 if (err)