Affected Component
rog-platform (GPU Switching / Armoury / WMI)
Issue Description
I may have found a workaround/root-cause clue for an old XG Mobile switching hang reported in asus-linux/supergfxctl#136.
My machine is a first-generation Flow X13 (GV301QH, BIOS 418) with the RTX 3080 XG Mobile. Without an extra kernel parameter, the low-level live enable sequence stalls in the ASUS WMI call for roughly 30 seconds, returns 0x2, and the XG GPU never enumerates. One attempt ended in an abrupt firmware reset/hang.
Adding only pcie_port_pm=off makes the same enable and disable sequence work consistently without rebooting.
I realize this may be a platform/kernel PCIe power-management quirk rather than an asusctl bug. I'm reporting it because the old supergfxctl project is archived, the current repository includes the GPU/WMI platform code, and warning affected Flow users could prevent a hard hang.
Steps to Reproduce
- Boot the GV301QH normally with the internal GTX 1650 active.
- Connect and lock the RTX 3080 XG Mobile.
- Stop the graphical session, release the NVIDIA stack, set
egpu_enable=1, perform the XG Mobile HID initialization, and rescan PCI.
- Without
pcie_port_pm=off, the WMI call returns 0x2 and the XG GPU does not enumerate.
- Add only
pcie_port_pm=off to the kernel command line and reboot.
- Repeat the same transition. The RTX 3080 enumerates at PCIe 3.0 x8, the NVIDIA driver binds, and the graphical session returns.
- Disable the XG Mobile again. The RTX disappears and the internal GTX 1650 re-enumerates without rebooting.
I tested pcie_aspm=off both together with pcie_port_pm=off and then removed it. It is not required.
Expected vs Actual Behavior
Expected: the live XG Mobile transition succeeds, or fails cleanly without hanging the session or machine.
Actual without the parameter: the ASUS WMI call stalls and returns 0x2; the XG GPU does not enumerate and the machine may hang/reset.
Actual with pcie_port_pm=off: live enable and disable both complete successfully and can be repeated after a fresh boot.
Laptop Model / Board Name
ROG Flow X13 GV301QH_GV301QH, BIOS GV301QH.418
Linux Distribution
Fedora Linux 44
Kernel Version
7.1.8-200.fc44.x86_64
asusctl / asusd / ROG Control Center Version
asusctl/asusd 6.4.0. The live switching test itself was performed through a separate Linux implementation of the low-level XG Mobile sequence, not through an asusctl or supergfxctl command.
Desktop Environment & Display Server
GNOME (Wayland)
Relevant Logs
# Failed attempt without pcie_port_pm=off
asus_wmi: Failed to set egpu state (retval): 0x2
# Successful attempt with pcie_port_pm=off
pci 0000:01:00.0: [10de:249c] type 00 class 0x030000 PCIe Legacy Endpoint
pci 0000:01:00.0: 63.008 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x8 link at 0000:00:01.1
Full notes and additional logs: utajum/g-helper-linux#171
Historical report with a very similar hang: https://gitlab.com/asus-linux/supergfxctl/-/work_items/136
Affected Component
rog-platform (GPU Switching / Armoury / WMI)
Issue Description
I may have found a workaround/root-cause clue for an old XG Mobile switching hang reported in asus-linux/supergfxctl#136.
My machine is a first-generation Flow X13 (GV301QH, BIOS 418) with the RTX 3080 XG Mobile. Without an extra kernel parameter, the low-level live enable sequence stalls in the ASUS WMI call for roughly 30 seconds, returns
0x2, and the XG GPU never enumerates. One attempt ended in an abrupt firmware reset/hang.Adding only
pcie_port_pm=offmakes the same enable and disable sequence work consistently without rebooting.I realize this may be a platform/kernel PCIe power-management quirk rather than an asusctl bug. I'm reporting it because the old supergfxctl project is archived, the current repository includes the GPU/WMI platform code, and warning affected Flow users could prevent a hard hang.
Steps to Reproduce
egpu_enable=1, perform the XG Mobile HID initialization, and rescan PCI.pcie_port_pm=off, the WMI call returns0x2and the XG GPU does not enumerate.pcie_port_pm=offto the kernel command line and reboot.I tested
pcie_aspm=offboth together withpcie_port_pm=offand then removed it. It is not required.Expected vs Actual Behavior
Expected: the live XG Mobile transition succeeds, or fails cleanly without hanging the session or machine.
Actual without the parameter: the ASUS WMI call stalls and returns
0x2; the XG GPU does not enumerate and the machine may hang/reset.Actual with
pcie_port_pm=off: live enable and disable both complete successfully and can be repeated after a fresh boot.Laptop Model / Board Name
ROG Flow X13 GV301QH_GV301QH, BIOS GV301QH.418
Linux Distribution
Fedora Linux 44
Kernel Version
7.1.8-200.fc44.x86_64
asusctl / asusd / ROG Control Center Version
asusctl/asusd 6.4.0. The live switching test itself was performed through a separate Linux implementation of the low-level XG Mobile sequence, not through an asusctl or supergfxctl command.
Desktop Environment & Display Server
GNOME (Wayland)
Relevant Logs
Full notes and additional logs: utajum/g-helper-linux#171
Historical report with a very similar hang: https://gitlab.com/asus-linux/supergfxctl/-/work_items/136