| From eef268e89acbc876f59e84a822fbeeae3dbb028e Mon Sep 17 00:00:00 2001 |
| From: Kai-Heng Feng <kai.heng.feng@canonical.com> |
| Date: Tue, 11 Dec 2018 15:59:38 +0800 |
| Subject: igb: Exclude device from suspend direct complete optimization |
| |
| [ Upstream commit 5b6e13216be29ced7350d9c354a1af8fe0ad9a3e ] |
| |
| igb sets different WoL settings in system suspend callback and runtime |
| suspend callback. |
| |
| The suspend direct complete optimization leaves igb in runtime suspended |
| state with wrong WoL setting during system suspend. |
| |
| To fix this, we need to disable suspend direct complete optimization to |
| let igb always use suspend callback to set correct WoL during system |
| suspend. |
| |
| Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> |
| Tested-by: Aaron Brown <aaron.f.brown@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/intel/igb/igb_main.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c |
| index 3269d8e94744f..580d14b49fda1 100644 |
| --- a/drivers/net/ethernet/intel/igb/igb_main.c |
| +++ b/drivers/net/ethernet/intel/igb/igb_main.c |
| @@ -3452,6 +3452,9 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
| break; |
| } |
| } |
| + |
| + dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP); |
| + |
| pm_runtime_put_noidle(&pdev->dev); |
| return 0; |
| |
| -- |
| 2.20.1 |
| |