From: "Francisco Beltrán Millalén" <fbeltranmillalen@gmail.com>
To: mjg59@srcf.ucam.org
Cc: helgaas@kernel.org, rafael@kernel.org, bhelgaas@google.com,
linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org,
lenb@kernel.org, linux-kernel@vger.kernel.org, d@rrell.co,
andreas.noever@gmail.com, westeri@kernel.org,
YehezkelShB@gmail.com, lukas@wunner.de,
linux-usb@vger.kernel.org
Subject: Re: [PATCH] ACPI: PCI: take native PME control on Apple machines
Date: Fri, 9 Oct 2026 09:14:13 -0300 [thread overview]
Message-ID: <20261009121413.23538-1-fbeltranmillalen@gmail.com> (raw)
In-Reply-To: <asikbIuZUZsgmU52@srcf.ucam.org>
Hi Matthew,
Thanks for going back that far, and for the explanation.
On Fri, Oct 09, 2026 at 01:23:08AM -0700, Matthew Garrett wrote:
> I /think/ this was the set of parameters that my machine would hand over
> via _OSC if we hadn't called _OSI("Darwin") - but it was over a decade
> ago so I can't promise that's the case. I think this probably needs to
> be tested on some older machines as well just to ensure there's no weird
> breakage as a result, but if PME is actually hooked up and there's no
> SMM managing it instead I think that's fine.
On the MacBookPro14,3 both conditions seem to hold. With the patch, the
root port takes the PME interrupt as soon as a device is plugged in, and
the controller is resumed in the same second. Without it, nothing picks
the event up: the controller stays suspended for over a minute with
PME_Status set, the GPE the firmware declares for those two xHCI
controllers never fires, and its handler doesn't notify them anyway. I
can't look at SMM directly, but if the firmware were handling the event
itself, the controller would have been woken without the patch, and it
never was. Darrell saw the same fix on his MacBookPro14,3.
You're right that older Macs should be tested, and I don't have any: the
patch has only run on my machine and Darrell's, both MacBookPro14,3.
Two things make me think the risk is small. Handling PME natively
doesn't turn off the firmware's own wake path, so if an older Mac does
use a GPE for this, that keeps working. The only side effect I would
expect is the PME driver logging "Spurious native interrupt". And on
these machines the kernel already takes over hotplug and AER without
asking the firmware, so PME would be treated the same way as the rest.
If anyone on Cc has an older Mac and can try it, I'd be glad to hear how
it goes.
Thanks again,
Francisco
prev parent reply other threads:[~2026-10-09 12:14 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 13:28 [PATCH] ACPI: PCI: take native PME control on Apple machines Francisco Beltrán Millalén
2026-09-24 13:34 ` sashiko-bot
2026-10-08 18:55 ` Darrell Gum
2026-10-08 23:29 ` Bjorn Helgaas
2026-10-09 8:23 ` Matthew Garrett
2026-10-09 12:14 ` Francisco Beltrán Millalén [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=20261009121413.23538-1-fbeltranmillalen@gmail.com \
--to=fbeltranmillalen@gmail.com \
--cc=YehezkelShB@gmail.com \
--cc=andreas.noever@gmail.com \
--cc=bhelgaas@google.com \
--cc=d@rrell.co \
--cc=helgaas@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mjg59@srcf.ucam.org \
--cc=rafael@kernel.org \
--cc=westeri@kernel.org \
/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