Re: [PATCH] ACPI: PCI: take native PME control on Apple machines
From: Francisco Beltrán Millalén
Date: Fri Oct 09 2026 - 08:15:23 EST
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