mbox series

[0/2] PCI: Fix runtime PME generation from D3hot

Message ID 20190107143959.75267-1-mika.westerberg@linux.intel.com (mailing list archive)
Headers show
Series PCI: Fix runtime PME generation from D3hot | expand

Message

Mika Westerberg Jan. 7, 2019, 2:39 p.m. UTC
Hi all,

Heiner reported [1] that runtime PME generation of his network card does
not work after commit 0e157e528604 ("PCI/PME: Implement runtime PM
callbacks") that landed in v4.20. Reverting the commit helps but it has
another drawback, which I originally tried to solve with the commit, that
the PCIe hierarchy wakes up immediately after being put into D3cold.

This series of two patches tries to fix both issues so that PME wakes up
from D3hot and that the hierarchy does not wake up immediately from D3cold.

[1] https://www.spinics.net/lists/linux-pci/msg79051.html

Mika Westerberg (2):
  Revert "PCI/PME: Implement runtime PM callbacks"
  PCI: pciehp: Disable Data Link Layer State Changed event on suspend

 drivers/pci/hotplug/pciehp_hpc.c | 10 ++++++++--
 drivers/pci/pcie/pme.c           | 27 ---------------------------
 2 files changed, 8 insertions(+), 29 deletions(-)

Comments

Heiner Kallweit Jan. 7, 2019, 6:54 p.m. UTC | #1
On 07.01.2019 15:39, Mika Westerberg wrote:
> Hi all,
> 
> Heiner reported [1] that runtime PME generation of his network card does
> not work after commit 0e157e528604 ("PCI/PME: Implement runtime PM
> callbacks") that landed in v4.20. Reverting the commit helps but it has
> another drawback, which I originally tried to solve with the commit, that
> the PCIe hierarchy wakes up immediately after being put into D3cold.
> 
> This series of two patches tries to fix both issues so that PME wakes up
> from D3hot and that the hierarchy does not wake up immediately from D3cold.
> 
> [1] https://www.spinics.net/lists/linux-pci/msg79051.html
> 
> Mika Westerberg (2):
>   Revert "PCI/PME: Implement runtime PM callbacks"
>   PCI: pciehp: Disable Data Link Layer State Changed event on suspend
> 
>  drivers/pci/hotplug/pciehp_hpc.c | 10 ++++++++--
>  drivers/pci/pcie/pme.c           | 27 ---------------------------
>  2 files changed, 8 insertions(+), 29 deletions(-)
> 
Works for me. But that's not a miracle because on my system
CONFIG_HOTPLUG_PCI isn't set and therefore effectively just the
runtime ops are removed again. And we tested before that this
fixes the issue for me. Thanks for the analysis and the fix!

So for the runtime PM PME generation:
Tested-by: Heiner Kallweit <hkallweit1@gmail.com>