mirror of https://gitee.com/openkylin/linux.git
Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
Tony Nguyen says: ==================== 1GbE Intel Wired LAN Driver Updates 2021-03-15 This series contains updates to e1000e only. Chen Yu says: The NIC is put in runtime suspend status when there is no cable connected. As a result, it is safe to keep non-wakeup NIC in runtime suspended during s2ram because the system does not rely on the NIC plug event nor WoL to wake up the system. Besides that, unlike the s2idle, s2ram does not need to manipulate S0ix settings during suspend. ==================== Acked-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
52280f60c9
|
@ -25,6 +25,7 @@
|
|||
#include <linux/pm_runtime.h>
|
||||
#include <linux/aer.h>
|
||||
#include <linux/prefetch.h>
|
||||
#include <linux/suspend.h>
|
||||
|
||||
#include "e1000.h"
|
||||
|
||||
|
@ -6918,6 +6919,12 @@ static int __e1000_resume(struct pci_dev *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int e1000e_pm_prepare(struct device *dev)
|
||||
{
|
||||
return pm_runtime_suspended(dev) &&
|
||||
pm_suspend_via_firmware();
|
||||
}
|
||||
|
||||
static __maybe_unused int e1000e_pm_suspend(struct device *dev)
|
||||
{
|
||||
struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev));
|
||||
|
@ -7626,9 +7633,9 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
|
||||
e1000_print_device_info(adapter);
|
||||
|
||||
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_SMART_PREPARE);
|
||||
|
||||
if (pci_dev_run_wake(pdev) && hw->mac.type < e1000_pch_cnp)
|
||||
if (pci_dev_run_wake(pdev) && hw->mac.type != e1000_pch_cnp)
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
|
||||
return 0;
|
||||
|
@ -7851,6 +7858,7 @@ MODULE_DEVICE_TABLE(pci, e1000_pci_tbl);
|
|||
|
||||
static const struct dev_pm_ops e1000_pm_ops = {
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.prepare = e1000e_pm_prepare,
|
||||
.suspend = e1000e_pm_suspend,
|
||||
.resume = e1000e_pm_resume,
|
||||
.freeze = e1000e_pm_freeze,
|
||||
|
|
Loading…
Reference in New Issue