mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Lukas Wunner <lukas@wunner.de>
To: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
	Bjorn Helgaas <helgaas@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] PCI: pciehp: Fix hotplug on Catlow Lake with unreliable PME status
Date: Fri, 25 Sep 2026 20:35:40 +0200	[thread overview]
Message-ID: <ara-_IPXV_i90if1@wunner.de> (raw)
In-Reply-To: <c5754240-1768-44a2-869c-6b159fd54907@linux.intel.com>

On Fri, Sep 25, 2026 at 10:38:08AM -0700, Kuppuswamy Sathyanarayanan wrote:
> Once the port is in D3hot, pciehp has cleared HPIE and depends on PME.
> That is where Catlow breaks. The PME interrupt arrives, but PME Status in
> Root Status is never set. pcie_pme_irq() returns IRQ_NONE, the port stays
> in D3hot and the hot-add event is lost.

If a device below the Root Port (instead of the Root Port itself)
signals PME, does the Root Port misbehave in the same way?
I.e. is the PME Status bit clear in that case as well?

If so, the proper solution might be to add a quirk to the PME driver,
not the PCIe hotplug driver.

pcie_pme_irq() checks PME Status and bails out if it's not set.
That would need an amendment such that Root Ports with broken PME
would always assume it's set if they receive a PME.  I think that
would be safe because even though PME is shared with other interrupts
such as hotplug, I think it's the only interrupt source once the port
is in D3hot.

There's another check for PME Status in pcie_pme_work_fn().
This one is tricky because it uses the PME Status bit to jump
out of the for-loop.  Does the Root Port at least set the
Requester ID to an appropriate value?  If so maybe that can be
used as an indicator whether the loop should be terminated.

Or maybe the PME Pending bit can be used in lieu of PME Status?

Thanks,

Lukas

      reply	other threads:[~2026-09-25 18:44 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-16 22:08 Kuppuswamy Sathyanarayanan
2026-03-23 12:53 ` Lukas Wunner
2026-03-23 23:24 ` Bjorn Helgaas
2026-03-24 21:45   ` Kuppuswamy Sathyanarayanan
2026-03-24 23:46     ` Bjorn Helgaas
2026-03-25  5:56     ` Lukas Wunner
2026-03-25 23:21       ` Bjorn Helgaas
2026-03-25  6:11     ` Mika Westerberg
2026-03-25 21:12       ` Kuppuswamy Sathyanarayanan
2026-03-26  6:12         ` Mika Westerberg
2026-03-26 21:23           ` Kuppuswamy Sathyanarayanan
2026-03-27 11:16             ` Mika Westerberg
2026-04-03 19:37               ` Kuppuswamy Sathyanarayanan
2026-04-07  7:08                 ` Mika Westerberg
2026-09-11 17:01                   ` Kuppuswamy Sathyanarayanan
2026-09-24 18:46                     ` Kuppuswamy Sathyanarayanan
2026-09-25  5:19                       ` Mika Westerberg
2026-09-25 17:38                         ` Kuppuswamy Sathyanarayanan
2026-09-25 18:35                           ` Lukas Wunner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ara-_IPXV_i90if1@wunner.de \
    --to=lukas@wunner.de \
    --cc=bhelgaas@google.com \
    --cc=helgaas@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael@kernel.org \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®