Re: [Bug 213873] New: Hotplug ethernet cable to runtime suspended Realtek NIC doesn't raise PCIe PME IRQ on Intel ADL
From: Kai-Heng Feng <hidden>
Date: 2021-07-29 14:50:40
Also in:
linux-pci
On Tue, Jul 27, 2021 at 11:55 PM Bjorn Helgaas [off-list ref] wrote:
On Tue, Jul 27, 2021 at 06:10:13AM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:quoted
https://bugzilla.kernel.org/show_bug.cgi?id=213873 Bug ID: 213873 Summary: Hotplug ethernet cable to runtime suspended Realtek NIC doesn't raise PCIe PME IRQ on Intel ADL Product: Drivers Version: 2.5 Kernel Version: mainline Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: PCI Assignee: drivers_pci@kernel-bugs.osdl.org Reporter: kai.heng.feng@canonical.com Regression: No Both PCIe bridge and Realtek NIC are runtime suspended. When ethernet cable is plugged, PMEStatus and PMEPending are marked: RootSta: PME ReqID 0200, PMEStatus+ PMEPending+ But the IRQ isn't raised: $ cat /proc/interrupts | grep PME 145: 0 0 0 0 0 0 0 0 0 0 0 0 VMD-MSI 126 PCIe PME, aerdrv, pcie-dpc So the hotplug event isn't detected. --From the lspci after cable hotplug (comment #3): 0000:00:1c.0 PCI bridge ... RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootSta: PME ReqID 0200, PMEStatus+ PMEPending+ So it looks like the root port is not enabled to generate a PME interrupt. pcie_pme_interrupt_enable() looks like it *could* enable that. From a quick look, my guess is that pme.c doesn't claim this root port because the platform says it doesn't support it: acpi PNP0A08:00: _OSC: platform does not support [PCIeHotplug SHPCHotplug PME] acpi PNP0A08:00: _OSC: OS now controls [AER PCIeCapability LTR] Does booting with "pcie_ports=native" make it work? That's not a very good solution, of course, because then both the firmware and Linux think they own this functionality.
Yes, thanks for spotting this.
Is there a BIOS update that would fix this?
This platform is still under enablement so we'll get a BIOS fix. Kai-Heng
Bjorn