diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 48 | 
1 files changed, 19 insertions, 29 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 09b8e88b299..8ef92d1a6aa 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -3345,34 +3345,25 @@ static void ixgbe_configure_dcb(struct ixgbe_adapter *adapter)  	hw->mac.ops.set_vfta(&adapter->hw, 0, 0, true); -	/* reconfigure the hardware */ -	if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_CEE) {  #ifdef IXGBE_FCOE -		if (adapter->netdev->features & NETIF_F_FCOE_MTU) -			max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE); +	if (adapter->netdev->features & NETIF_F_FCOE_MTU) +		max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE);  #endif + +	/* reconfigure the hardware */ +	if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_CEE) {  		ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame,  						DCB_TX_CONFIG);  		ixgbe_dcb_calculate_tc_credits(hw, &adapter->dcb_cfg, max_frame,  						DCB_RX_CONFIG);  		ixgbe_dcb_hw_config(hw, &adapter->dcb_cfg); -	} else { -		struct net_device *dev = adapter->netdev; - -		if (adapter->ixgbe_ieee_ets) { -			struct ieee_ets *ets = adapter->ixgbe_ieee_ets; -			int max_frame = dev->mtu + ETH_HLEN + ETH_FCS_LEN; - -			ixgbe_dcb_hw_ets(&adapter->hw, ets, max_frame); -		} - -		if (adapter->ixgbe_ieee_pfc) { -			struct ieee_pfc *pfc = adapter->ixgbe_ieee_pfc; -			u8 *prio_tc = adapter->ixgbe_ieee_ets->prio_tc; - -			ixgbe_dcb_hw_pfc_config(&adapter->hw, pfc->pfc_en, -						prio_tc); -		} +	} else if (adapter->ixgbe_ieee_ets && adapter->ixgbe_ieee_pfc) { +		ixgbe_dcb_hw_ets(&adapter->hw, +				 adapter->ixgbe_ieee_ets, +				 max_frame); +		ixgbe_dcb_hw_pfc_config(&adapter->hw, +					adapter->ixgbe_ieee_pfc->pfc_en, +					adapter->ixgbe_ieee_ets->prio_tc);  	}  	/* Enable RSS Hash per TC */ @@ -6125,7 +6116,6 @@ static void ixgbe_sfp_link_config_subtask(struct ixgbe_adapter *adapter)  	autoneg = hw->phy.autoneg_advertised;  	if ((!autoneg) && (hw->mac.ops.get_link_capabilities))  		hw->mac.ops.get_link_capabilities(hw, &autoneg, &negotiation); -	hw->mac.autotry_restart = false;  	if (hw->mac.ops.setup_link)  		hw->mac.ops.setup_link(hw, autoneg, negotiation, true); @@ -7589,13 +7579,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,  		goto err_eeprom;  	} -	/* power down the optics for multispeed fiber and 82599 SFP+ fiber */ -	if (hw->mac.ops.disable_tx_laser && -	    ((hw->phy.multispeed_fiber) || -	     ((hw->mac.ops.get_media_type(hw) == ixgbe_media_type_fiber) && -	      (hw->mac.type == ixgbe_mac_82599EB)))) -		hw->mac.ops.disable_tx_laser(hw); -  	setup_timer(&adapter->service_timer, &ixgbe_service_timer,  	            (unsigned long) adapter); @@ -7693,6 +7676,13 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,  	if (err)  		goto err_register; +	/* power down the optics for multispeed fiber and 82599 SFP+ fiber */ +	if (hw->mac.ops.disable_tx_laser && +	    ((hw->phy.multispeed_fiber) || +	     ((hw->mac.ops.get_media_type(hw) == ixgbe_media_type_fiber) && +	      (hw->mac.type == ixgbe_mac_82599EB)))) +		hw->mac.ops.disable_tx_laser(hw); +  	/* carrier off reporting is important to ethtool even BEFORE open */  	netif_carrier_off(netdev);  |