[RESPONDED] Sleep while on TB dock, disconnect, resume: ~ 1min delay to resume

Just posting this as a heads up and also because I’m curious to see how widespread it is:

This seems to have started with the 6.4 series kernels. Fedora 38, still reproducing as of kernel 6.4.6. 11th Gen FW 13, BIOS 3.17, TB4 dock (Kensington SD5780T).

  • Boot while docked.
  • Suspend (s2idle), close lid.
  • DIsconnect from dock, connect to power brick instead.
  • Open lid.
  • Keyboard backlight turns on, power button goes from pulsing back to solid white as normal.
  • Screen stays black for ~ 1 minute, then turns on.
  • Machine is now operating normally.

dmesg contains:

[  +1.473495] PM: suspend entry (s2idle)
[  +0.013495] Filesystems sync: 0.013 seconds
[  +0.148695] Freezing user space processes
[  +0.004314] Freezing user space processes completed (elapsed 0.004 seconds)
[  +0.000008] OOM killer disabled.
[  +0.000002] Freezing remaining freezable tasks
[  +0.001477] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[  +0.000004] printk: Suspending console(s) (use no_console_suspend to debug)
[  +0.196848] PM: suspend devices took 0.197 seconds
[  +0.041492] ACPI: EC: interrupt blocked
[Jul27 06:04] ACPI: EC: interrupt unblocked
[  +1.657717] pcieport 0000:80:00.0: not ready 1023ms after resume; waiting
[  +1.087999] pcieport 0000:80:00.0: not ready 2047ms after resume; waiting
[  +2.111995] pcieport 0000:80:00.0: not ready 4095ms after resume; waiting
[  +4.352011] pcieport 0000:80:00.0: not ready 8191ms after resume; waiting
[  +8.704074] pcieport 0000:80:00.0: not ready 16383ms after resume; waiting
[ +16.896101] pcieport 0000:80:00.0: not ready 32767ms after resume; waiting
[Jul27 06:05] pcieport 0000:80:00.0: not ready 65535ms after resume; giving up
[  +0.000132] pcieport 0000:80:00.0: Unable to change power state from D3cold to D0, device inaccessible
[  +0.001823] pcieport 0000:81:00.0: Unable to change power state from D3cold to D0, device inaccessible
[  +0.000008] pcieport 0000:81:04.0: Unable to change power state from D3cold to D0, device inaccessible
[  +0.000113] pcieport 0000:81:01.0: Unable to change power state from D3cold to D0, device inaccessible
[  +0.000001] pcieport 0000:81:02.0: Unable to change power state from D3cold to D0, device inaccessible
[  +0.000000] pcieport 0000:81:03.0: Unable to change power state from D3cold to D0, device inaccessible
[  +0.004581] pcieport 0000:00:07.3: pciehp: Slot(0-3): Card not present
[  +0.001563] pci_bus 0000:82: busn_res: [bus 82] is released
[  +0.000208] pci_bus 0000:83: busn_res: [bus 83-8f] is released
[  +0.000170] pci_bus 0000:90: busn_res: [bus 90-9c] is released
[  +0.000152] pci_bus 0000:9d: busn_res: [bus 9d-a8] is released
[  +0.000164] pci_bus 0000:a9: busn_res: [bus a9] is released
[  +0.000136] pci_bus 0000:81: busn_res: [bus 81-a9] is released

Not a huge annoyance (to me at least), especially as this isn’t a frequent transition.

Seems like something changed with PCIe power management in 6.4, and/or some timeout parameter changed.

A rudimentary search hasn’t returned anything so far.

1 Like

Definitely something to watch. Although compared to the TPM headache previously, this hasn’t been on my radar much. Appreciate you sharing this.

1 Like

Thanks for reporting this! I have been seeing the same behaviour on different hardware for a while now, too. (12th Gen, 3.06 Beta BIOS, Arch Linux kernel 6.4.8-arch1 but has been happening for a few versions, HP Thunderbolt 3 Dock.)

100% reproducible here. In my case the hang with screen off is just over two minutes long each time, but this might be because there are more PCI devices hanging off the dock that wait to time out.

Example kernel log from mine

[16082.236949] theseus kernel: Freezing user space processes
[16082.241547] theseus kernel: Freezing user space processes completed (elapsed 0.004 seconds)
[16082.241564] theseus kernel: OOM killer disabled.
[16082.241567] theseus kernel: Freezing remaining freezable tasks
[16082.243410] theseus kernel: Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[16082.243415] theseus kernel: printk: Suspending console(s) (use no_console_suspend to debug)
[16084.026255] theseus kernel: ACPI: EC: interrupt blocked
[36256.463097] theseus kernel: ACPI: EC: interrupt unblocked
[36258.134195] theseus kernel: thunderbolt 0000:00:0d.3: 0:3: failed to reach state TB_PORT_UP. Ignoring port…
[36258.134209] theseus kernel: thunderbolt 0000:00:0d.3: 0:3: lost during suspend, disconnecting
[36258.135089] theseus kernel: thunderbolt 1-0:3.1: retimer disconnected
[36258.138058] theseus kernel: thunderbolt 1-3: device disconnected
[36259.510847] theseus kernel: pcieport 0000:7d:00.0: not ready 1023ms after resume; waiting
[36260.550805] theseus kernel: pcieport 0000:7d:00.0: not ready 2047ms after resume; waiting
[36262.657473] theseus kernel: pcieport 0000:7d:00.0: not ready 4095ms after resume; waiting
[36266.924072] theseus kernel: pcieport 0000:7d:00.0: not ready 8191ms after resume; waiting
[36275.243909] theseus kernel: pcieport 0000:7d:00.0: not ready 16383ms after resume; waiting
[36292.097019] theseus kernel: pcieport 0000:7d:00.0: not ready 32767ms after resume; waiting
[36326.229782] theseus kernel: pcieport 0000:7d:00.0: not ready 65535ms after resume; giving up
[36326.230007] theseus kernel: pcieport 0000:7d:00.0: Unable to change power state from D3cold to D0, device inaccessible
[36326.232472] theseus kernel: pcieport 0000:7e:00.0: Unable to change power state from D3cold to D0, device inaccessible
[36326.232479] theseus kernel: pcieport 0000:7e:01.0: Unable to change power state from D3cold to D0, device inaccessible
[36326.232483] theseus kernel: pcieport 0000:7e:02.0: Unable to change power state from D3cold to D0, device inaccessible
[36326.232484] theseus kernel: pcieport 0000:7e:03.0: Unable to change power state from D3cold to D0, device inaccessible
[36326.232525] theseus kernel: pcieport 0000:7e:04.0: Unable to change power state from D3cold to D0, device inaccessible
[36327.509763] theseus kernel: xhci_hcd 0000:7f:00.0: not ready 1023ms after resume; waiting
[36327.509816] theseus kernel: tg3 0000:80:00.0: not ready 1023ms after resume; waiting
[36327.509816] theseus kernel: xhci_hcd 0000:83:00.0: not ready 1023ms after resume; waiting
[36328.549759] theseus kernel: xhci_hcd 0000:83:00.0: not ready 2047ms after resume; waiting
[36328.549762] theseus kernel: xhci_hcd 0000:7f:00.0: not ready 2047ms after resume; waiting
[36328.549762] theseus kernel: tg3 0000:80:00.0: not ready 2047ms after resume; waiting
[36330.709759] theseus kernel: xhci_hcd 0000:83:00.0: not ready 4095ms after resume; waiting
[36330.709764] theseus kernel: tg3 0000:80:00.0: not ready 4095ms after resume; waiting
[36330.709769] theseus kernel: xhci_hcd 0000:7f:00.0: not ready 4095ms after resume; waiting
[36334.976313] theseus kernel: xhci_hcd 0000:7f:00.0: not ready 8191ms after resume; waiting
[36334.976354] theseus kernel: xhci_hcd 0000:83:00.0: not ready 8191ms after resume; waiting
[36334.976370] theseus kernel: tg3 0000:80:00.0: not ready 8191ms after resume; waiting
[36343.296204] theseus kernel: xhci_hcd 0000:7f:00.0: not ready 16383ms after resume; waiting
[36343.296234] theseus kernel: xhci_hcd 0000:83:00.0: not ready 16383ms after resume; waiting
[36343.296270] theseus kernel: tg3 0000:80:00.0: not ready 16383ms after resume; waiting
[36360.362599] theseus kernel: xhci_hcd 0000:7f:00.0: not ready 32767ms after resume; waiting
[36360.362603] theseus kernel: xhci_hcd 0000:83:00.0: not ready 32767ms after resume; waiting
[36360.362617] theseus kernel: tg3 0000:80:00.0: not ready 32767ms after resume; waiting
[36394.495387] theseus kernel: xhci_hcd 0000:83:00.0: not ready 65535ms after resume; giving up
[36394.495421] theseus kernel: xhci_hcd 0000:7f:00.0: not ready 65535ms after resume; giving up
[36394.495466] theseus kernel: tg3 0000:80:00.0: not ready 65535ms after resume; giving up
[36394.495506] theseus kernel: tg3 0000:80:00.0: Unable to change power state from D3cold to D0, device inaccessible
[36394.495508] theseus kernel: xhci_hcd 0000:83:00.0: Unable to change power state from D3cold to D0, device inaccessible
[36394.495535] theseus kernel: xhci_hcd 0000:7f:00.0: Unable to change power state from D3cold to D0, device inaccessible
[36394.573340] theseus kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.5.1
[36394.573345] theseus kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[36394.576668] theseus kernel: iwlwifi 0000:a6:00.0: WRT: Invalid buffer destination
[36394.578965] theseus kernel: pcieport 0000:00:07.3: pciehp: Slot(6): Card not present
[36394.578989] theseus kernel: xhci_hcd 0000:83:00.0: remove, state 4
[36394.579043] theseus kernel: usb usb8: USB disconnect, device number 1
[36394.579190] theseus kernel: xhci_hcd 0000:7f:00.0: Unable to change power state from D3cold to D0, device inaccessible
[36394.579211] theseus kernel: xhci_hcd 0000:7f:00.0: Controller not ready at resume -19
[36394.579221] theseus kernel: xhci_hcd 0000:7f:00.0: PCI post-resume error -19!
[36394.579228] theseus kernel: xhci_hcd 0000:7f:00.0: HC died; cleaning up
[36394.579242] theseus kernel: nvme nvme0: Shutdown timeout set to 8 seconds
[36394.579248] theseus kernel: xhci_hcd 0000:7f:00.0: PM: dpm_run_callback(): pci_pm_resume+0x0/0xf0 returns -19
[36394.579260] theseus kernel: xhci_hcd 0000:7f:00.0: PM: failed to resume async: error -19
[36394.579684] theseus kernel: xhci_hcd 0000:83:00.0: USB bus 8 deregistered
[36394.579690] theseus kernel: xhci_hcd 0000:83:00.0: remove, state 4
[36394.579695] theseus kernel: usb usb7: USB disconnect, device number 1
[36394.579697] theseus kernel: usb 7-2: USB disconnect, device number 2
[36394.579698] theseus kernel: usb 7-2.1: USB disconnect, device number 3
[36394.579700] theseus kernel: usb 7-2.1.1: USB disconnect, device number 5
[36394.580373] theseus kernel: usb 7-2.1.2: USB disconnect, device number 4
[36394.580970] theseus kernel: usb 7-2.1.3: USB disconnect, device number 6
[36394.582938] theseus kernel: xhci_hcd 0000:83:00.0: Host halt failed, -19
[36394.582941] theseus kernel: xhci_hcd 0000:83:00.0: Host not accessible, reset failed.
[36394.583394] theseus kernel: xhci_hcd 0000:83:00.0: USB bus 7 deregistered
[36394.583408] theseus kernel: ------------[ cut here ]------------
[36394.583409] theseus kernel: xhci_hcd 0000:83:00.0: disabling already-disabled device
[36394.583417] theseus kernel: WARNING: CPU: 7 PID: 139 at drivers/pci/pci.c:2248 pci_disable_device+0xa4/0xd0
[36394.583425] theseus kernel: Modules linked in: uas usb_storage hid_apple apple_mfi_fastcharge snd_usb_audio snd_usbmidi_lib usbhid snd_rawmidi tg3 libphy rfcomm snd_seq_dummy snd_h>
[36394.583472] theseus kernel: crc16 hid_sensor_als hid_sensor_trigger industrialio_triggered_buffer kfifo_buf hid_sensor_iio_common industrialio joydev mousedev snd_sof_pci_intel_tg>
[36394.583563] theseus kernel: intel_rapl_msr ttm snd_timer cros_ec kvm fat cfg80211 irqbypass rapl intel_cstate processor_thermal_device_pci drm_display_helper mei_me intel_lpss_pci>
[36394.583667] theseus kernel: crypto_user dm_mod
[36394.583670] theseus kernel: CPU: 7 PID: 139 Comm: irq/126-pciehp Not tainted 6.4.8-arch1-1 #1 32d33b6d57e164374ae6ef6944f2c148fe2e7db9
[36394.583713] theseus kernel: Hardware name: Framework Laptop (12th Gen Intel Core)/FRANMACP04, BIOS 03.06 11/10/2022
[36394.583715] theseus kernel: RIP: 0010:pci_disable_device+0xa4/0xd0
[36394.583719] theseus kernel: Code: 48 85 ed 75 07 48 8b ab d0 00 00 00 48 8d bb d0 00 00 00 e8 8e 9c 1f 00 48 89 ea 48 c7 c7 20 3a 27 ac 48 89 c6 e8 0c f0 9a ff <0f> 0b e9 76 ff ff >
[36394.583721] theseus kernel: RSP: 0018:ffffb06e4070fce8 EFLAGS: 00010286
[36394.583724] theseus kernel: RAX: 0000000000000000 RBX: ffffa0c1c18bc000 RCX: 0000000000000027
[36394.583725] theseus kernel: RDX: ffffa0c78f9e16c8 RSI: 0000000000000001 RDI: ffffa0c78f9e16c0
[36394.583727] theseus kernel: RBP: ffffa0c03633a480 R08: ffffffffaca5a820 R09: 00000000ad4b0b08
[36394.583728] theseus kernel: R10: ffffffffffffffff R11: ffffffffacab8508 R12: ffffffffc06d70a0
[36394.583730] theseus kernel: R13: ffffa0c1c18bc150 R14: 0000000000000080 R15: ffffa0c0025ba320
[36394.583731] theseus kernel: FS: 0000000000000000(0000) GS:ffffa0c78f9c0000(0000) knlGS:0000000000000000
[36394.583732] theseus kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[36394.583734] theseus kernel: CR2: 00007efc030e3000 CR3: 0000000295a20000 CR4: 0000000000f50ee0
[36394.583735] theseus kernel: PKRU: 55555554
[36394.583736] theseus kernel: Call Trace:
[36394.583739] theseus kernel:
[36394.583745] theseus kernel: ? pci_disable_device+0xa4/0xd0
[36394.583749] theseus kernel: ? __warn+0x81/0x130
[36394.583755] theseus kernel: ? pci_disable_device+0xa4/0xd0
[36394.583759] theseus kernel: ? report_bug+0x171/0x1a0
[36394.583764] theseus kernel: ? handle_bug+0x3c/0x80
[36394.583767] theseus kernel: ? exc_invalid_op+0x17/0x70
[36394.583770] theseus kernel: ? asm_exc_invalid_op+0x1a/0x20
[36394.583776] theseus kernel: ? pci_disable_device+0xa4/0xd0
[36394.583779] theseus kernel: ? pci_disable_device+0xa4/0xd0
[36394.583782] theseus kernel: pci_device_remove+0x37/0xa0
[36394.583786] theseus kernel: device_release_driver_internal+0x19f/0x200
[36394.583790] theseus kernel: pci_stop_bus_device+0x6c/0x90
[36394.583794] theseus kernel: pci_stop_bus_device+0x2c/0x90
[36394.583797] theseus kernel: pci_stop_bus_device+0x2c/0x90
[36394.583799] theseus kernel: pci_stop_and_remove_bus_device+0x12/0x20
[36394.583802] theseus kernel: pciehp_unconfigure_device+0x98/0x160
[36394.583807] theseus kernel: pciehp_disable_slot+0x67/0x130
[36394.583810] theseus kernel: pciehp_handle_presence_or_link_change+0x84/0x4b0
[36394.583814] theseus kernel: pciehp_ist+0x230/0x260
[36394.583818] theseus kernel: ? __pfx_irq_thread_fn+0x10/0x10
[36394.583821] theseus kernel: irq_thread_fn+0x20/0x60
[36394.583865] theseus kernel: irq_thread+0xfb/0x1c0
[36394.583867] theseus kernel: ? __pfx_irq_thread_dtor+0x10/0x10
[36394.583869] theseus kernel: ? __pfx_irq_thread+0x10/0x10
[36394.583871] theseus kernel: kthread+0xe5/0x120
[36394.583874] theseus kernel: ? __pfx_kthread+0x10/0x10
[36394.583876] theseus kernel: ret_from_fork+0x29/0x50
[36394.583882] theseus kernel:
[36394.583882] theseus kernel: —[ end trace 0000000000000000 ]—
[36394.589379] theseus kernel: i915 0000:00:02.0: [drm] GT0: HuC: authenticated!
[36394.590349] theseus kernel: i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[36394.590351] theseus kernel: i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[36394.590820] theseus kernel: i915 0000:00:02.0: [drm] GT0: GUC: RC enabled
[36394.595517] theseus kernel: nvme nvme0: 16/0/0 default/read/poll queues
[36394.732360] theseus kernel: iwlwifi 0000:a6:00.0: WFPM_UMAC_PD_NOTIFICATION: 0x1f
[36394.732409] theseus kernel: iwlwifi 0000:a6:00.0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[36394.732433] theseus kernel: iwlwifi 0000:a6:00.0: WFPM_AUTH_KEY_0: 0x80
[36394.732449] theseus kernel: iwlwifi 0000:a6:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
[36394.846863] theseus kernel: tg3 0000:80:00.0 enp128s0: No firmware running
[36394.958777] theseus kernel: tg3 0000:80:00.0 enp128s0: Failed to re-initialize device, aborting
[36394.959738] theseus kernel: tg3 0000:80:00.0: PM: dpm_run_callback(): pci_pm_resume+0x0/0xf0 returns -19
[36394.959745] theseus kernel: tg3 0000:80:00.0: PM: failed to resume async: error -19
[36394.975421] theseus kernel: xhci_hcd 0000:7f:00.0: remove, state 4
[36394.975424] theseus kernel: usb usb6: USB disconnect, device number 1
[36394.975425] theseus kernel: usb 6-1: USB disconnect, device number 2
[36394.975427] theseus kernel: usb 6-1.4: USB disconnect, device number 3
[36394.975428] theseus kernel: usb 6-1.4.3: USB disconnect, device number 4
[36394.975714] theseus kernel: usb 6-1.4.4: USB disconnect, device number 5
[36394.975716] theseus kernel: usb 6-1.4.4.2: USB disconnect, device number 6
[36394.975857] theseus kernel: usb 6-1.4.4.4: USB disconnect, device number 7
[36394.975859] theseus kernel: usb 6-1.4.4.4.1: USB disconnect, device number 8
[36394.989226] theseus kernel: i915 0000:00:02.0: [drm] ERROR [ENCODER:266:DDI TC3/PHY TC3][DPRX] Failed to enable link training
[36395.025179] theseus kernel: xhci_hcd 0000:7f:00.0: USB bus 6 deregistered
[36395.025212] theseus kernel: xhci_hcd 0000:7f:00.0: remove, state 4
[36395.025217] theseus kernel: usb usb5: USB disconnect, device number 1
[36395.025221] theseus kernel: usb 5-1: USB disconnect, device number 2
[36395.025224] theseus kernel: usb 5-1.4: USB disconnect, device number 4
[36395.025228] theseus kernel: usb 5-1.4.2: USB disconnect, device number 5
[36395.026904] theseus kernel: usb 5-1.4.3: USB disconnect, device number 6
[36395.027140] theseus kernel: usb 5-1.4.4: USB disconnect, device number 7
[36395.027143] theseus kernel: usb 5-1.4.4.2: USB disconnect, device number 8
[36395.027341] theseus kernel: usb 5-1.4.4.4: USB disconnect, device number 9
[36395.028119] theseus kernel: usb 5-2: USB disconnect, device number 3
[36395.028828] theseus kernel: xhci_hcd 0000:7f:00.0: Host halt failed, -19
[36395.028832] theseus kernel: xhci_hcd 0000:7f:00.0: Host not accessible, reset failed.
[36395.029522] theseus kernel: xhci_hcd 0000:7f:00.0: USB bus 5 deregistered
[36395.030170] theseus kernel: pci_bus 0000:7f: busn_res: [bus 7f] is released
[36395.030485] theseus kernel: pci_bus 0000:80: busn_res: [bus 80] is released
[36395.030710] theseus kernel: pci_bus 0000:81: busn_res: [bus 81] is released
[36395.030817] theseus kernel: pci_bus 0000:82: busn_res: [bus 82] is released
[36395.030999] theseus kernel: pci_bus 0000:83: busn_res: [bus 83-a5] is released
[36395.031136] theseus kernel: pci_bus 0000:7e: busn_res: [bus 7e-a5] is released
[36395.073011] theseus kernel: OOM killer enabled.
[36395.073016] theseus kernel: Restarting tasks …
[36395.076451] theseus kernel: mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
[36395.081382] theseus kernel: mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[36395.083711] theseus kernel: done.
[36395.083722] theseus kernel: random: crng reseeded on system resumption
[36395.092138] theseus kernel: PM: suspend exit

This feels like it could be a kernel bug not a BIOS bug, although I haven’t found anyone reporting the same issue on any other platforms…

FWIW for me personally this is a hassle - I am often grabbing my sleeping laptop out of the dock, taking it somewhere, and then opening it later. I haven’t yet had it happen at a client meeting, but not looking forward to that!

Realising that it eventually recovers from the hang and I don’t have to force power off each time was a big relief, though.

I went through and tested the arch kernel releases, and can confirm this appears between 6.3.9-arch1 and 6.4.1-arch2 for me (and still present in 6.4.11-arch2). I’ll try to find the time to do a commit-level bisect on a mainline kernel.

EDIT: A couple of notes for anyone else experiencing this:

  • If you have a screen off timeout set then it’s possible for the laptop to un-hang, finish waking from suspend, flash the display on for a moment and then immediately put the screen to sleep due to the idle timeout. If you don’t see the screen flash on, you can only find out if it’s woken up properly by interacting with it (keyboard, trackpad, etc.)
  • It seems like sometimes the Framework completely ignores power button presses if it’s only been suspended for a short time (less than 30 seconds, say). Pressing the power button again later always seems to work (:person_shrugging:).
1 Like

Appreciate the thoroughness of your notes, @Angus_Gratton

1 Like

Weirdly, I’ve swapped from the HP Thunderbolt 3 Dock I was using to a Dell WD22TB4 USB4 dock (for non-Framework-related reasons) and the delay on resume does not occur with the Dell dock. Kernel 6.5.3-arch1-1 now, and double checked it still hangs using my HP dock.

No idea what the difference is. I thought it might be Thunderbolt 3 vs 4, but you’re seeing it on a TB4 dock…

(I guess it might be a firmware version thing, HP stopped updating my older dock years ago but I updated the Dell to the latest firmware (01.01.00.05) from LVFS when I got it.)

If anyone is reading this and has the Dell WD19 dock (basically the TB3 revision of the same Dock hardware), then I would be fascinated to know if you can reproduce the problem on that dock and with what firmware version…

It is listed as directly supporting RHEL, Ubuntu and Windows, so I’m guessing it’ll work just fine.
Dell Performance Dock – WD19DCS | Dell UK

Note: that is the UK site, but I doubt that matters. Dell being a global company and all.

Don’t have it myself, but thought I would point that out.

I’ve been experiencing this issue with my 11th gen Framework laptop and a “Anker PowerExpand Elite 13-in-1 Thunderbolt 3 Docking Station”. If I don’t remember to wake the laptop up before unplugging it from the dock, it’s unresponsive for minutes with similar angry pcieport kernel messages as those already shown. The issue can be reliably reproduced every time I unplug.

This dock also has consistent issues with HDMI audio that require me to re-plug the cable a few times to get it working. So I just assumed this dock was overpriced trash and didn’t think the TB resume issue might be affecting other hubs :wink:

This has been happening to me for a long time now. I’d say early 6.x kernels, maybe even late 5.x kernels?

I’m running 3.17 BIOS, but I recall this affecting earlier BIOS releases as well.

In case it’s useful:

$ fwupdmgr get-devices
# -snip-
├─PowerExpand Elite 13-in-1 Thunderbolt 3 Dock:
│     Device ID:          fd41e309f3e7374bfc511e1059ec4e0bc2491668
│     Current version:    56.00
│     Vendor:             ANKER (THUNDERBOLT:0x01EA, TBT:0x01EA)
│     GUIDs:              38a99aab-1c80-5eb8-960a-c2b28629f7bb ← THUNDERBOLT\VEN_01EA&DEV_8396
│                         12689e4b-4382-502b-9895-de2c7a114a42 ← TBT-01ea8396
│                         795d31da-4427-5e41-bc7a-c2efd58be431 ← TBT-01ea8396-controller0-1
│     Device Flags:       • Updatable
│                         • System requires external power source
│                         • Device stages updates
│                         • Signed Payload

Just a quick necropost to report that this appears to no longer be happening as of kernel 6.5.9-200.fc38.x86_64.

Edit: Looking at my initial report, the exponential-backoff-looking not ready x ms after resume errors are gone from the time when the machine was resuming. In their place there’s now only one:

Oct 30 11:48:27 greebo kernel: pcieport 0000:80:00.0: not ready 1023ms after resume; giving up
Oct 30 11:48:27 greebo kernel: pcieport 0000:80:00.0: Unable to change power state from D3cold to D0, device inaccessible
Oct 30 11:48:27 greebo kernel: pcieport 0000:81:04.0: Unable to change power state from D3cold to D0, device inaccessible
Oct 30 11:48:27 greebo kernel: pcieport 0000:81:01.0: Unable to change power state from D3cold to D0, device inaccessible
Oct 30 11:48:27 greebo kernel: pcieport 0000:81:03.0: Unable to change power state from D3cold to D0, device inaccessible
Oct 30 11:48:27 greebo kernel: pcieport 0000:81:00.0: Unable to change power state from D3cold to D0, device inaccessible
Oct 30 11:48:27 greebo kernel: pcieport 0000:81:02.0: Unable to change power state from D3cold to D0, device inaccessible
Oct 30 11:48:27 greebo kernel: pcieport 0000:00:07.3: pciehp: Slot(0-3): Card not present
Oct 30 11:48:27 greebo kernel: pci 0000:81:03.0: Unable to change power state from D3cold to D0, device inaccessible
Oct 30 11:48:27 greebo kernel: pci 0000:81:02.0: Unable to change power state from D3cold to D0, device inaccessible

etc.

This is why I am not “team dock”, great in theory, but, when they fail to provide compatibility, it’s pretty frustrating.

That said, may be worth filing a bug report on this as you can share logs, etc. There may even be some on the Arch forums who have this dock and can provide additional insight as well.

Thanks for the heads-up dimitris. On 6.5.9-arch2-1 I see the same - no more delay. :tada:

Looks like it was probably this patch PCI/PM: Mark devices disconnected if upstream PCIe link is down on resume, which landed in 6.5.7.

1 Like