Thread (2 messages) 2 messages, 2 authors, 2021-07-29

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help