I210 ethernet card doesn't wakeup when a cable gets plugged. It's
because its PME is not set.
Since commit 42eca2302146 ("PCI: Don't touch card regs after runtime
suspend D3"), if the PCI state is saved, pci_pm_runtime_suspend() stops
calling pci_finish_runtime_suspend(), which enables the PCI PME.
To fix the issue, let's not to save PCI states when it's runtime
suspend, to let the PCI subsytem enables PME.
On Wed, Dec 05, 2018 at 02:16:04PM +0800, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1806818 >
> Plugging ethernet cable cannot wake up Intel I210 when it's runtime
> suspended. It's because the PME is not enabled.
> PCI core doesn't enable PME because the driver explicitly saves its PCI
> state before runtime suspend routine. Don't save PCI state fixes the
> PME is correctly enabled, and cable plugging starts to work.
> [Regression Potential]
> Minimal. The fix limits to on device, and it's specific to runtime power
> management. Other functionalities are not affected.