Re: [BUG] ASUS ProArt PX13 HN7306WU: amd_pmc s2idle S0ix corrupts AMD 1022:150b root port, NVIDIA dGPU returns header type 7f
From: Mario Limonciello
Date: Fri Apr 03 2026 - 17:29:05 EST
On 4/3/26 4:05 PM, Mario Limonciello wrote:
On 4/3/26 3:47 PM, Joyful Lee wrote:
On Fri, Apr 3, 2026 at 4:03 PM Mario Limonciello
<mario.limonciello@xxxxxxx> wrote:
Can you do the exact same on the same branch/commit but without pciehp
enabled? It will make comparison of all the impacts (not just this root
port) a lot easier.
Here you go. Unfortunately it's not *exactly* the same because I had to
disable the nvidia driver to get a result.
Thanks - the most obvious observation is what you already noted - without hotplug support the root port skips PM all together.
[24.575705] pcieport 0000:00:01.2: PCI PM: Suspend power state: D0
[24.575707] pcieport 0000:00:01.2: PCI PM: Skipped
[24.575709] pcieport 0000:00:01.1: PCI PM: Suspend power state: D0
[24.575709] pcieport 0000:00:01.1: PCI PM: Skipped
vs
[29.279987] pcieport 0000:00:01.1: power state changed by ACPI to D3cold
[29.279991] pcieport 0000:00:01.1: PCI PM: Suspend power state: D3cold
[29.280214] pcieport 0000:00:01.2: power state changed by ACPI to D3cold
[29.280219] pcieport 0000:00:01.2: PCI PM: Suspend power state: D3cold
The hotplug support seems to apply to 3 ports.
0000:00:01.1 (Bus 01):
- Slot Capabilities: 0x00040060
- Flags: HotPlug+ Surprise+ LLActRep+
0000:00:01.2 (Bus 61):
- Slot Capabilities: 0x00040060
- Flags: HotPlug+ Surprise+ LLActRep+
0000:00:03.1 (Bus c4):
- Slot Capabilities: 0x000425e0
- Flags: HotPlug+ Surprise+ LLActRep+
- This port also has bandwidth control enabled: bwctrl: enabled with IRQ 38
The port stays in D0 because the child (the GPU) stays in D0 for suspend.
[24.599889] pcieport 0000:00:03.1: PCI PM: Suspend power state: D0
[24.599890] pcieport 0000:00:03.1: PCI PM: Skipped
So I would say we should look at what the GPU isn't going to D3 for suspend for the next clue.
OK - so the issue comes from acpi_pci_bridge_d3() which is called from platform_pci_bridge_d3():
if (acpi_pci_disabled || !dev->is_pciehp)
return false;