/** * e1000_power_up_phy - Restores link in case of PHY power down * @hw: pointer to the HW structure * * The phy may be powered down to save power, to turn off link when the * driver is unloaded, or wake on lan is not enabled (among others). **/ void e1000_power_up_phy(struct e1000_hw *hw) { if (hw->phy.ops.power_up) hw->phy.ops.power_up(hw); e1000_setup_link(hw); }
static int e1000_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause) { struct e1000_adapter *adapter = netdev->priv; struct e1000_hw *hw = &adapter->hw; adapter->fc_autoneg = pause->autoneg; if(pause->rx_pause && pause->tx_pause) hw->fc = e1000_fc_full; else if(pause->rx_pause && !pause->tx_pause) hw->fc = e1000_fc_rx_pause; else if(!pause->rx_pause && pause->tx_pause) hw->fc = e1000_fc_tx_pause; else if(!pause->rx_pause && !pause->tx_pause) hw->fc = e1000_fc_none; hw->original_fc = hw->fc; if(adapter->fc_autoneg == AUTONEG_ENABLE) { if(netif_running(adapter->netdev)) { e1000_down(adapter); e1000_up(adapter); } else e1000_reset(adapter); } else return ((hw->media_type == e1000_media_type_fiber) ? e1000_setup_link(hw) : e1000_force_mac_fc(hw)); return 0; }