diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igb/igb_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 57 | 
1 files changed, 8 insertions, 49 deletions
| diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 69b230c53fed..3269d8e94744 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -8740,9 +8740,7 @@ static int __igb_shutdown(struct pci_dev *pdev, bool *enable_wake,  	struct e1000_hw *hw = &adapter->hw;  	u32 ctrl, rctl, status;  	u32 wufc = runtime ? E1000_WUFC_LNKC : adapter->wol; -#ifdef CONFIG_PM -	int retval = 0; -#endif +	bool wake;  	rtnl_lock();  	netif_device_detach(netdev); @@ -8755,14 +8753,6 @@ static int __igb_shutdown(struct pci_dev *pdev, bool *enable_wake,  	igb_clear_interrupt_scheme(adapter);  	rtnl_unlock(); -#ifdef CONFIG_PM -	if (!runtime) { -		retval = pci_save_state(pdev); -		if (retval) -			return retval; -	} -#endif -  	status = rd32(E1000_STATUS);  	if (status & E1000_STATUS_LU)  		wufc &= ~E1000_WUFC_LNKC; @@ -8779,10 +8769,6 @@ static int __igb_shutdown(struct pci_dev *pdev, bool *enable_wake,  		}  		ctrl = rd32(E1000_CTRL); -		/* advertise wake from D3Cold */ -		#define E1000_CTRL_ADVD3WUC 0x00100000 -		/* phy power management enable */ -		#define E1000_CTRL_EN_PHY_PWR_MGMT 0x00200000  		ctrl |= E1000_CTRL_ADVD3WUC;  		wr32(E1000_CTRL, ctrl); @@ -8796,12 +8782,15 @@ static int __igb_shutdown(struct pci_dev *pdev, bool *enable_wake,  		wr32(E1000_WUFC, 0);  	} -	*enable_wake = wufc || adapter->en_mng_pt; -	if (!*enable_wake) +	wake = wufc || adapter->en_mng_pt; +	if (!wake)  		igb_power_down_link(adapter);  	else  		igb_power_up_link(adapter); +	if (enable_wake) +		*enable_wake = wake; +  	/* Release control of h/w to f/w.  If f/w is AMT enabled, this  	 * would have already happened in close and is redundant.  	 */ @@ -8844,22 +8833,7 @@ static void igb_deliver_wake_packet(struct net_device *netdev)  static int __maybe_unused igb_suspend(struct device *dev)  { -	int retval; -	bool wake; -	struct pci_dev *pdev = to_pci_dev(dev); - -	retval = __igb_shutdown(pdev, &wake, 0); -	if (retval) -		return retval; - -	if (wake) { -		pci_prepare_to_sleep(pdev); -	} else { -		pci_wake_from_d3(pdev, false); -		pci_set_power_state(pdev, PCI_D3hot); -	} - -	return 0; +	return __igb_shutdown(to_pci_dev(dev), NULL, 0);  }  static int __maybe_unused igb_resume(struct device *dev) @@ -8930,22 +8904,7 @@ static int __maybe_unused igb_runtime_idle(struct device *dev)  static int __maybe_unused igb_runtime_suspend(struct device *dev)  { -	struct pci_dev *pdev = to_pci_dev(dev); -	int retval; -	bool wake; - -	retval = __igb_shutdown(pdev, &wake, 1); -	if (retval) -		return retval; - -	if (wake) { -		pci_prepare_to_sleep(pdev); -	} else { -		pci_wake_from_d3(pdev, false); -		pci_set_power_state(pdev, PCI_D3hot); -	} - -	return 0; +	return __igb_shutdown(to_pci_dev(dev), NULL, 1);  }  static int __maybe_unused igb_runtime_resume(struct device *dev) |