PCI/DPC: Disable DPC service on suspend
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Tue, 16 Apr 2024 04:32:25 +0000 (12:32 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 18 Jun 2024 19:51:23 +0000 (14:51 -0500)
commit75c47c790f43c438761fc049fb9d438144a9db45
tree4b7c9261df759d07a27f60e650ed170693b0e96a
parent5afc2f763edc5daae4722ee46fea4e627d01fa90
PCI/DPC: Disable DPC service on suspend

If the link is powered off during suspend, electrical noise may cause
errors that trigger DPC.  If the DPC interrupt is enabled and shares an IRQ
with PME, that causes a spurious wakeup during suspend.

Disable DPC triggering and the DPC interrupt during suspend to prevent
this.  Clear DPC interrupt status before re-enabling DPC interrupts during
resume so we don't get an interrupt for errors that occurred during the
suspend/resume process.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=209149
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216295
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218090
Link: https://lore.kernel.org/r/20240416043225.1462548-3-kai.heng.feng@canonical.com
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
[bhelgaas: clear status on resume, add comments, commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pcie/dpc.c