* Re: [BUG] Genesys GL9750 (17a0:9750) does not respond after its PCIe slot is powered back on from D3cold, on s2idle resume and at runtime (ASUS Vivobook 14 Flip TP3407SA, kernel 7.3.1) [not found] <x4G_0cgWnHWJtmgP4iX3hFfwwbWDyVuO9Ps8Pv_Rnq4VguufBRLzZex1IxGuTtaYfU7tS7U8RbKjB2I54HxfEmPk3gzKWvYDAyuZXrtWbDU=@protonmail.com> @ 2026-11-05 3:32 ` Kyle Baedke 2026-11-05 6:04 ` Adrian Hunter 0 siblings, 1 reply; 2+ messages in thread From: Kyle Baedke @ 2026-11-05 3:32 UTC (permalink / raw) To: adrian.hunter, bhelgaas, rafael Cc: linux-mmc, linux-pci, linux-acpi, linux-kernel On Wednesday, November 4th, 2026 at 2:52 PM, Kyle Baedke <kylebaedke@protonmail.com> wrote: First copy was in html mode this should be in plaintext > The GL9750 SD host controller in my laptop is dead after its PCIe slot has > been powered off and back on through the root port's ACPI power resource. > This happens on resume from s2idle, and I can also reproduce it at runtime > with no sleep involved. In both cases the link below the root port never > comes up, so the device reads as all-ones. The sdhci errors are a > consequence of that. I'm writing to the sdhci maintainers because the > device is driven by sdhci-pci-gli, but the failure occurs before the > driver can talk to the device. > > == System == > > Laptop: ASUS Vivobook 14 Flip TP3407SA > BIOS: TP3407SA.308, 03/05/2026 (the latest available) > Kernel: 7.3.1 (NixOS 26.11), x86_64 > Device: 0000:2c:00.0 Genesys Logic GL9750 [17a0:9750] rev 1, > subsystem 1043:202f > Upstream: root port 0000:00:1c.4 (ACPI \_SB.PC00.RP05), link 2.5GT/s x1 > Cmdline: intel_iommu=on iommu=pt pcie_aspm.policy=powersave > (the relevant parameters) > Sleep: /sys/power/mem_sleep = [s2idle] deep. Selecting "deep" (S3) > hangs the machine and needs power to be cut to recover, so > s2idle is the only usable sleep mode. > > The root port's ACPI node has power resources (power_resources_D0 and > power_resources_D3hot in sysfs). The endpoint's ACPI node has none. > > Other firmware/kernel messages seen at boot: > > ACPI: \_SB_.PEPD: Duplicate LPS0 _DSM functions (mask: 0x1) > pci 0000:00:1c.4: mask Replay Timer Timeout Correctable Errors due to > 0000:2c:00.0 hardware defect > > == Symptom == > > After the slot is powered back on, config space reads of the device return > ffff, the port's Link Status stays 0x1011 (Data Link Layer Link Active = 0, > not training), and sdhci reports: > > mmc0: sdhci: Version: 0x0000ffff (register dump is all 0xff) > mmc0: enable PCI MSI failed, error=-22 > mmc0: Reset 0x1 never completed. > mmc0: 3.3V regulator output did not become stable > mmc0: Controller never released inhibit bit(s). > > On a healthy boot the port's Link Status is 0x3011. > > == Resume trace == > > Captured with rtcwake -m mem -s 15 (s2idle), pm_debug_messages=1 and > dynamic debug enabled for drivers/pci/*, drivers/acpi/power.c and > drivers/acpi/device_pm.c: > > [ 145.370215] sdhci-pci 0000:2c:00.0: PCI PM: Suspend power state: D3hot > [ 145.406917] ACPI: \_SB_.PC00.RP05.PXP_: ACPI: PM: Power resource turned off > [ 145.406948] pcieport 0000:00:1c.4: PCI PM: Suspend power state: D3cold > ... > [ 159.865842] ACPI: \_SB_.PC00.RP05: PM: Power state change: D3cold -> D0 > [ 160.263869] ACPI: \_SB_.PC00.RP05.PXP_: ACPI: PM: Power resource turned on > [ 160.264234] ACPI: \_SB_.PC00.RP05: PM: Power state changed to D0 > [ 160.264241] pcieport 0000:00:1c.4: power state changed by ACPI to D0 > [ 160.276459] pcieport 0000:00:1c.4: ready 0ms after power up D3hot->D0uninitialized > [ 160.276866] pcieport 0000:00:1c.4: waiting 100 ms for downstream link, after activation > [ 161.297053] pcieport 0000:00:1c.4: Data Link Layer Link Active not set in 100 msec > [ 161.303943] sdhci-pci 0000:2c:00.0: restore config 0x3c: 0xffffffff -> 0x000001ff > [ 161.321478] mmc0: enable PCI MSI failed, error=-22 > [ 161.421611] mmc0: Reset 0x1 never completed. > [ 161.741170] mmc0: 3.3V regulator output did not become stable > > The slot was off for about 15 s (145.407 to 160.264), so this is not a > short-off-time problem. > > == Reproduction without suspend == > > From a healthy boot (device alive, no SD card inserted): > > echo 1 > /sys/bus/pci/devices/0000:2c:00.0/remove > echo 1 > /sys/bus/pci/devices/0000:00:1c.4/d3cold_allowed > echo auto > /sys/bus/pci/devices/0000:00:1c.4/power/control > # the root port's power_state reached D3cold after about 2 s > sleep 1 > echo on > /sys/bus/pci/devices/0000:00:1c.4/power/control > # port is D0 again, but its Link Status is 0x1011 (DLActive = 0) > echo 1 > /sys/bus/pci/rescan # repeated once per second for 15 s > > The device never reappears, and Link Status stays 0x1011 for the whole > 15 s. This uses only a 1 s off time. > > == What I tried == > > Suspend variants, each run with rtcwake -m mem -s 15 (s2idle), no SD card > inserted. All of these failed on the first cycle: > > - no changes > - endpoint power/control=on > - root port power/control=on > - endpoint link/l1_2_aspm and link/l1_2_pcipm set to 0 > - endpoint link/l1_aspm, l1_1_aspm, l1_2_aspm, l1_1_pcipm, l1_2_pcipm > all set to 0 > - endpoint removed before suspend, rescanned after resume > > This one passed 10/10 cycles (device alive 2 s and 8 s after resume, port > Link Status 0x3011 each time): > > - d3cold_allowed=0 on both the endpoint and the root port, set just > before suspend and restored to 1 right after resume > > Recovery attempted after a failed resume, with the root port held in D0 > (power/control=on) and the rescan polled for 15 s per stage. None brought > the device back, and Link Status stayed 0x1011 throughout: > > - remove + rescan > - secondary bus reset on the root port, then rescan > - Link Disable / enable on the root port, then rescan > > == Questions == > > 1. Is this a known issue with this device or this platform's slot power-on > method? > 2. What additional tracing would help (ACPI AML debugging, GPIO/pinctrl > state before and after the power resource turns on, anything else)? > > I can build and test patches on this machine. > > Thanks, > Kyle > > Sent with Proton Mail secure email. ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [BUG] Genesys GL9750 (17a0:9750) does not respond after its PCIe slot is powered back on from D3cold, on s2idle resume and at runtime (ASUS Vivobook 14 Flip TP3407SA, kernel 7.3.1) 2026-11-05 3:32 ` [BUG] Genesys GL9750 (17a0:9750) does not respond after its PCIe slot is powered back on from D3cold, on s2idle resume and at runtime (ASUS Vivobook 14 Flip TP3407SA, kernel 7.3.1) Kyle Baedke @ 2026-11-05 6:04 ` Adrian Hunter 0 siblings, 0 replies; 2+ messages in thread From: Adrian Hunter @ 2026-11-05 6:04 UTC (permalink / raw) To: Ben Chuang Cc: linux-mmc, bhelgaas, rafael, linux-pci, linux-acpi, linux-kernel, Kyle Baedke, VictorShih[施勝文] + Ben Chuang On 05/11/2026 05:32, Kyle Baedke wrote: > > > On Wednesday, November 4th, 2026 at 2:52 PM, Kyle Baedke <kylebaedke@protonmail.com> wrote: > First copy was in html mode this should be in plaintext >> The GL9750 SD host controller in my laptop is dead after its PCIe slot has >> been powered off and back on through the root port's ACPI power resource. >> This happens on resume from s2idle, and I can also reproduce it at runtime >> with no sleep involved. In both cases the link below the root port never >> comes up, so the device reads as all-ones. The sdhci errors are a >> consequence of that. I'm writing to the sdhci maintainers because the >> device is driven by sdhci-pci-gli, but the failure occurs before the >> driver can talk to the device. >> >> == System == >> >> Laptop: ASUS Vivobook 14 Flip TP3407SA >> BIOS: TP3407SA.308, 03/05/2026 (the latest available) >> Kernel: 7.3.1 (NixOS 26.11), x86_64 >> Device: 0000:2c:00.0 Genesys Logic GL9750 [17a0:9750] rev 1, >> subsystem 1043:202f >> Upstream: root port 0000:00:1c.4 (ACPI \_SB.PC00.RP05), link 2.5GT/s x1 >> Cmdline: intel_iommu=on iommu=pt pcie_aspm.policy=powersave >> (the relevant parameters) >> Sleep: /sys/power/mem_sleep = [s2idle] deep. Selecting "deep" (S3) >> hangs the machine and needs power to be cut to recover, so >> s2idle is the only usable sleep mode. >> >> The root port's ACPI node has power resources (power_resources_D0 and >> power_resources_D3hot in sysfs). The endpoint's ACPI node has none. >> >> Other firmware/kernel messages seen at boot: >> >> ACPI: \_SB_.PEPD: Duplicate LPS0 _DSM functions (mask: 0x1) >> pci 0000:00:1c.4: mask Replay Timer Timeout Correctable Errors due to >> 0000:2c:00.0 hardware defect >> >> == Symptom == >> >> After the slot is powered back on, config space reads of the device return >> ffff, the port's Link Status stays 0x1011 (Data Link Layer Link Active = 0, >> not training), and sdhci reports: >> >> mmc0: sdhci: Version: 0x0000ffff (register dump is all 0xff) >> mmc0: enable PCI MSI failed, error=-22 >> mmc0: Reset 0x1 never completed. >> mmc0: 3.3V regulator output did not become stable >> mmc0: Controller never released inhibit bit(s). >> >> On a healthy boot the port's Link Status is 0x3011. >> >> == Resume trace == >> >> Captured with rtcwake -m mem -s 15 (s2idle), pm_debug_messages=1 and >> dynamic debug enabled for drivers/pci/*, drivers/acpi/power.c and >> drivers/acpi/device_pm.c: >> >> [ 145.370215] sdhci-pci 0000:2c:00.0: PCI PM: Suspend power state: D3hot >> [ 145.406917] ACPI: \_SB_.PC00.RP05.PXP_: ACPI: PM: Power resource turned off >> [ 145.406948] pcieport 0000:00:1c.4: PCI PM: Suspend power state: D3cold >> ... >> [ 159.865842] ACPI: \_SB_.PC00.RP05: PM: Power state change: D3cold -> D0 >> [ 160.263869] ACPI: \_SB_.PC00.RP05.PXP_: ACPI: PM: Power resource turned on >> [ 160.264234] ACPI: \_SB_.PC00.RP05: PM: Power state changed to D0 >> [ 160.264241] pcieport 0000:00:1c.4: power state changed by ACPI to D0 >> [ 160.276459] pcieport 0000:00:1c.4: ready 0ms after power up D3hot->D0uninitialized >> [ 160.276866] pcieport 0000:00:1c.4: waiting 100 ms for downstream link, after activation >> [ 161.297053] pcieport 0000:00:1c.4: Data Link Layer Link Active not set in 100 msec >> [ 161.303943] sdhci-pci 0000:2c:00.0: restore config 0x3c: 0xffffffff -> 0x000001ff >> [ 161.321478] mmc0: enable PCI MSI failed, error=-22 >> [ 161.421611] mmc0: Reset 0x1 never completed. >> [ 161.741170] mmc0: 3.3V regulator output did not become stable >> >> The slot was off for about 15 s (145.407 to 160.264), so this is not a >> short-off-time problem. >> >> == Reproduction without suspend == >> >> From a healthy boot (device alive, no SD card inserted): >> >> echo 1 > /sys/bus/pci/devices/0000:2c:00.0/remove >> echo 1 > /sys/bus/pci/devices/0000:00:1c.4/d3cold_allowed >> echo auto > /sys/bus/pci/devices/0000:00:1c.4/power/control >> # the root port's power_state reached D3cold after about 2 s >> sleep 1 >> echo on > /sys/bus/pci/devices/0000:00:1c.4/power/control >> # port is D0 again, but its Link Status is 0x1011 (DLActive = 0) >> echo 1 > /sys/bus/pci/rescan # repeated once per second for 15 s >> >> The device never reappears, and Link Status stays 0x1011 for the whole >> 15 s. This uses only a 1 s off time. >> >> == What I tried == >> >> Suspend variants, each run with rtcwake -m mem -s 15 (s2idle), no SD card >> inserted. All of these failed on the first cycle: >> >> - no changes >> - endpoint power/control=on >> - root port power/control=on >> - endpoint link/l1_2_aspm and link/l1_2_pcipm set to 0 >> - endpoint link/l1_aspm, l1_1_aspm, l1_2_aspm, l1_1_pcipm, l1_2_pcipm >> all set to 0 >> - endpoint removed before suspend, rescanned after resume >> >> This one passed 10/10 cycles (device alive 2 s and 8 s after resume, port >> Link Status 0x3011 each time): >> >> - d3cold_allowed=0 on both the endpoint and the root port, set just >> before suspend and restored to 1 right after resume >> >> Recovery attempted after a failed resume, with the root port held in D0 >> (power/control=on) and the rescan polled for 15 s per stage. None brought >> the device back, and Link Status stayed 0x1011 throughout: >> >> - remove + rescan >> - secondary bus reset on the root port, then rescan >> - Link Disable / enable on the root port, then rescan >> >> == Questions == >> >> 1. Is this a known issue with this device or this platform's slot power-on >> method? >> 2. What additional tracing would help (ACPI AML debugging, GPIO/pinctrl >> state before and after the power resource turns on, anything else)? >> >> I can build and test patches on this machine. >> >> Thanks, >> Kyle >> >> Sent with Proton Mail secure email. ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-05 6:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <x4G_0cgWnHWJtmgP4iX3hFfwwbWDyVuO9Ps8Pv_Rnq4VguufBRLzZex1IxGuTtaYfU7tS7U8RbKjB2I54HxfEmPk3gzKWvYDAyuZXrtWbDU=@protonmail.com>
2026-11-05 3:32 ` [BUG] Genesys GL9750 (17a0:9750) does not respond after its PCIe slot is powered back on from D3cold, on s2idle resume and at runtime (ASUS Vivobook 14 Flip TP3407SA, kernel 7.3.1) Kyle Baedke
2026-11-05 6:04 ` Adrian Hunter
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®