diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igb/igb_ethtool.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igb/igb_ethtool.c | 56 | 
1 files changed, 2 insertions, 54 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c index 0acf590d4a8..e2288b5a9ca 100644 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -1966,54 +1966,6 @@ static void igb_diag_test(struct net_device *netdev,  	msleep_interruptible(4 * 1000);  } -static int igb_wol_exclusion(struct igb_adapter *adapter, -			     struct ethtool_wolinfo *wol) -{ -	struct e1000_hw *hw = &adapter->hw; -	int retval = 1; /* fail by default */ - -	switch (hw->device_id) { -	case E1000_DEV_ID_82575GB_QUAD_COPPER: -		/* WoL not supported */ -		wol->supported = 0; -		break; -	case E1000_DEV_ID_82575EB_FIBER_SERDES: -	case E1000_DEV_ID_82576_FIBER: -	case E1000_DEV_ID_82576_SERDES: -		/* Wake events not supported on port B */ -		if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1) { -			wol->supported = 0; -			break; -		} -		/* return success for non excluded adapter ports */ -		retval = 0; -		break; -	case E1000_DEV_ID_82576_QUAD_COPPER: -	case E1000_DEV_ID_82576_QUAD_COPPER_ET2: -		/* quad port adapters only support WoL on port A */ -		if (!(adapter->flags & IGB_FLAG_QUAD_PORT_A)) { -			wol->supported = 0; -			break; -		} -		/* return success for non excluded adapter ports */ -		retval = 0; -		break; -	default: -		/* dual port cards only support WoL on port A from now on -		 * unless it was enabled in the eeprom for port B -		 * so exclude FUNC_1 ports from having WoL enabled */ -		if ((rd32(E1000_STATUS) & E1000_STATUS_FUNC_MASK) && -		    !adapter->eeprom_wol) { -			wol->supported = 0; -			break; -		} - -		retval = 0; -	} - -	return retval; -} -  static void igb_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)  {  	struct igb_adapter *adapter = netdev_priv(netdev); @@ -2023,10 +1975,7 @@ static void igb_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)  	                 WAKE_PHY;  	wol->wolopts = 0; -	/* this function will set ->supported = 0 and return 1 if wol is not -	 * supported by this hardware */ -	if (igb_wol_exclusion(adapter, wol) || -	    !device_can_wakeup(&adapter->pdev->dev)) +	if (!(adapter->flags & IGB_FLAG_WOL_SUPPORTED))  		return;  	/* apply any specific unsupported masks here */ @@ -2054,8 +2003,7 @@ static int igb_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)  	if (wol->wolopts & (WAKE_ARP | WAKE_MAGICSECURE))  		return -EOPNOTSUPP; -	if (igb_wol_exclusion(adapter, wol) || -	    !device_can_wakeup(&adapter->pdev->dev)) +	if (!(adapter->flags & IGB_FLAG_WOL_SUPPORTED))  		return wol->wolopts ? -EOPNOTSUPP : 0;  	/* these settings will always override what we currently have */  |