[RESOLVED] Framework 13 12th gen doesn't go to sleep with Thunderbolt eGPU dock connected

I just got an EXP GDC TH3P4G3 Thunderbolt eGPU dock and it seems to work just fine for now (I don’t currently have a GPU plugged in, I’m just using it as a Thunderbolt hub), and I noticed that whenever I try to put the laptop to sleep, it turns off the screen and everything, the power LED even starts pulsing, then after a second it turns back on again.

I’m running Pop!_OS 22.04 LTS (yes, I know it’s not officially supported by Framework) using systemd and Wayland if relevant.

Anyone encountered this issue before?

This just means that Framework support won’t be able to help you as much. PopOS is a pretty popular distro and has some good community support here.

Out of curiosity, have you tried testing your setup in a live usb of either of the officially supported distros? that would at least tell you if the problem is hardware or software.

I’ve just tried a fresh Live USB with Ubuntu 22.04 LTS running X and the issue is the exact same. As soon as all the lights turn off, the laptop turns back on again.

I also tried Windows 11 and there it seems to sleep properly, although as soon as I move the mouse, it wakes up from sleep. I think the second part is intended behavior but still.

The easiest answer is to unplug it before going into suspend. The more in-depth answer will be to dig into dmesg and journalctl to see why it is preventing suspend. Not much we can do here as we don’t have a means of providing support for various eGPUs out there at this time. But, the logs may shed some light on what is happening.

last 3 minutes of journalctl - link
last log from dmesg - link

Unfortunately I don’t see anything of use here.

Appreciate the logs, unfortunately they refreshed to https://hastebin.skyra.pw/ and provided nothing in terms of the logs themselves.

Not much we can do here as we don’t have a means of providing support for various eGPUs out there at this time. Having the eGPU attached is going to interfere with suspend in this case.

I managed to fix it!

After a bunch of scouring on old threads from Thinkpad users, a fix some people proposed was to disable ACPI wakeup for whatever device I had trouble with. I am not sure what all that stuff means, but after running lspci to get a list of my devices, I started disabling some one by one then trying to suspend. Almost lost hope until eventually after disabling one of them, the laptop wouldn’t wake back up! Great success!

sudo sh -c "echo TRP3 > /proc/acpi/wakeup" was what fixed my issue.

The dock in question is connected to top left USB-C slot.
In my case, TRP3 corresponded to device pci:0000:00:07.3.

After looking at lspci I could see that 00:07.3 corresponded with PCI bridge: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #3 (rev 02)

Full lspci output
00:00.0 Host bridge: Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P Integrated Graphics Controller (rev 0c)
00:04.0 Signal processing controller: Intel Corporation Alder Lake Innovation Platform Framework Processor Participant (rev 02)
00:06.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 (rev 02)
00:07.0 PCI bridge: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #0 (rev 02)
00:07.1 PCI bridge: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #1 (rev 02)
00:07.2 PCI bridge: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #2 (rev 02)
00:07.3 PCI bridge: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #3 (rev 02)
00:08.0 System peripheral: Intel Corporation 12th Gen Core Processor Gaussian & Neural Accelerator (rev 02)
00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01)
00:0d.0 USB controller: Intel Corporation Alder Lake-P Thunderbolt 4 USB Controller (rev 02)
00:0d.2 USB controller: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #0 (rev 02)
00:0d.3 USB controller: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #1 (rev 02)
00:14.0 USB controller: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller (rev 01)
00:14.2 RAM memory: Intel Corporation Alder Lake PCH Shared SRAM (rev 01)
00:15.0 Serial bus controller: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 (rev 01)
00:15.1 Serial bus controller: Intel Corporation Alder Lake PCH Serial IO I2C Controller #1 (rev 01)
00:15.3 Serial bus controller: Intel Corporation Alder Lake PCH Serial IO I2C Controller #3 (rev 01)
00:16.0 Communication controller: Intel Corporation Alder Lake PCH HECI Controller (rev 01)
00:16.3 Serial controller: Intel Corporation Device 51e3 (rev 01)
00:1d.0 PCI bridge: Intel Corporation Device 51b0 (rev 01)
00:1f.0 ISA bridge: Intel Corporation Alder Lake PCH eSPI Controller (rev 01)
00:1f.3 Audio device: Intel Corporation Alder Lake PCH-P High Definition Audio Controller (rev 01)
00:1f.4 SMBus: Intel Corporation Alder Lake PCH-P SMBus Host Controller (rev 01)
00:1f.5 Serial bus controller: Intel Corporation Alder Lake-P PCH SPI Controller (rev 01)
01:00.0 Non-Volatile memory controller: Sandisk Corp Device 5017 (rev 01)
7d:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge DD 2018] (rev 06)
7e:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge DD 2018] (rev 06)
7e:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge DD 2018] (rev 06)
7e:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge DD 2018] (rev 06)
7f:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev e7)
7f:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590]
91:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018] (rev 06)
a6:00.0 Network controller: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz (rev 1a)
(part of) cat /proc/acpi/wakeup
TXHC S4 *disabled pci:0000:00:0d.0
TDM0 S4 *disabled pci:0000:00:0d.2
TDM1 S4 *disabled pci:0000:00:0d.3
TRP0 S4 *disabled pci:0000:00:07.0
PXSX S4 *disabled
TRP1 S4 *disabled pci:0000:00:07.1
PXSX S4 *disabled
TRP2 S4 *disabled pci:0000:00:07.2
PXSX S4 *disabled
TRP3 S4 *disabled pci:0000:00:07.3
PXSX S4 *enabled pci:0000:7d:00.0
AWAC S4 *disabled
PWRB S4 *enabled platform:PNP0C0C:00
1 Like

Fantastic! Marking resolved.

Question - does the Framework laptop power cycle the ports when going to sleep?

I think the reason the dock keeps waking up the laptop is that whenever it senses power on the USB, it triggers a wake-up command (which I now ignore). Therefore, whenever the laptop would go to sleep, power would cut off then back on, thus making the dock trigger the wake-up signal.

The fix no longer seems to work. Same slot used for the dock. The setting I applied only works until the first full shutdown of the system. I tried to disable TRP3 again but it didn’'t sleep now. Also tried the other TRP devices with the same effect.

I think it’s a combination of devices that need to be disabled if I want sleep to work…