tb_switch_resume(9)
π€ tb_switch_resume(9) β the "wake up bestie" page π€
okay so this is a page from the Kernel API Manual (that's the manual name, bestie, it's giving very much kernel-core) and it's all about tb_switch_resume. Buckle up π
β¨ NAME β¨
tb_switch_resume β literally just resume a switch after sleep. that's it. that's the vibe π
β¨ SYNOPSIS β¨
int tb_switch_resume (struct tb_switch *sw , bool runtime );
yes the spacing is real, don't come for me, copy it exactly π«Ά
β¨ ARGUMENTS β¨
swβ the switch you're resuming. the main character of this whole operation πruntimeβ is this resume from runtime suspend or from system sleep? lowkey an important distinction, pick one, no cap.
β¨ DESCRIPTION β¨
so what it does: it resumes and re-enumerates the router β and like, all of its children too β but only if it's still plugged after suspend. if you yanked it out mid-nap, this isn't happening, sorry bestie π
it does not enumerate a device router whose UID was changed during suspend. nope. not doing that. the UID changed, so it's a different situation now, we're not touching it π
if this is a resume from system sleep, it notifies the PM core about the wakes that occurred during suspend. like a little "hey, these things woke up while you were out" text thread π¬
and it disables all wakes, except the USB4 wake of the upstream port for USB4 routers β that one shall be always enabled. always. periodt. that's a hard rule, not a suggestion β
β¨ RETURN β¨
0on success β slay π- negative errno otherwise β not slay, but at least it tells you what's up π
β¨ SEE ALSO β¨
this list is genuinely iconic in length, so here we go, all of them, none skipped, we do NOT leave anyone out π«Ά
tb_switch_nvm_read(9)tb_port_state(9)tb_wait_for_port(9)tb_port_add_nfc_credits(9)tb_port_clear_counter(9)tb_port_unlock(9)tb_port_enable(9)tb_port_disable(9)tb_port_reset(9)tb_port_alloc_in_hopid(9)tb_port_alloc_out_hopid(9)tb_port_release_in_hopid(9)tb_port_release_out_hopid(9)tb_next_port_on_path(9)tb_port_get_link_speed(9)tb_port_get_link_generation(9)tb_port_get_link_width(9)tb_port_width_supported(9)tb_port_set_link_width(9)tb_port_set_lane_bonding(9)tb_port_lane_bonding_enable(9)tb_port_lane_bonding_disable(9)tb_port_wait_for_link_width(9)tb_port_update_credits(9)tb_port_is_enabled(9)tb_usb3_port_is_enabled(9)tb_usb3_port_enable(9)tb_pci_port_is_enabled(9)tb_pci_port_enable(9)tb_dp_port_hpd_is_active(9)tb_dp_port_hpd_clear(9)tb_dp_port_set_hops(9)tb_dp_port_is_enabled(9)tb_dp_port_enable(9)tb_switch_reset(9)tb_switch_wait_for_bit(9)tb_switch_alloc(9)tb_switch_alloc_safe_mode(9)tb_switch_configure(9)tb_switch_configuration_valid(9)tb_switch_lane_bonding_enable(9)tb_switch_lane_bonding_disable(9)tb_switch_set_link_width(9)tb_switch_configure_link(9)tb_switch_unconfigure_link(9)tb_switch_add(9)tb_switch_remove(9)tb_sw_set_unplugged(9)tb_switch_suspend(9)tb_switch_query_dp_resource(9)tb_switch_alloc_dp_resource(9)tb_switch_dealloc_dp_resource(9)tb_switch_find_by_link_depth(9)tb_switch_find_by_uuid(9)tb_switch_find_by_route(9)tb_switch_find_port(9)tb_switch_pcie_l1_enable(9)tb_switch_xhci_connect(9)tb_switch_xhci_disconnect(9)
and if you're looking for the actual source, it lives in the kernel file ./drivers/thunderbolt/switch.c β that's the π location, iykyk.
okay that's the page!! π this came out of ./drivers/thunderbolt and it's dated October 2026 β leaving you with that, mwah ππ¦β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms