tb_switch_remove(9)
π tb_switch_remove β the Kernel API Manual moment (section 9, obviously)
okay bestie, welcome to tb_switch_remove from the Kernel API Manual β yes we're in section 9, the big-kid kernel functions, and no I will not be normal about it π
β¨ NAME β¨
tb_switch_remove β Remove and release a switch π«Ά
πΈ SYNOPSIS πΈ
void tb_switch_remove (struct tb_switch *sw );
that's it. that's the whole vibe. void, so it gives you nothing back β it just does π
π ARGUMENTS π
swβ the switch you want to remove, bestie. the one that's gotta go π¦
β DESCRIPTION β
so here's the tea β β this will remove the switch from the domain, and then it releases it after the last reference count drops to zero. so like, it's not gone-gone the second you call it, it's gone when everyone else stops holding hands with it π
and if there are switches connected below this switch, they will be removed as well. the whole lil family tree comes down with it, no cap π think main character energy but make it a cascade.
ngl, that second part is the important bit β it's not just this switch, it's everything hanging off it too π
π SEE ALSO π
the kernel file lives at ./drivers/thunderbolt/switch.c, and it is surrounded by icons, iykyk. here's the full squad, everybody pulls up:
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_sw_set_unplugged(9)tb_switch_resume(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)
like, fifty-nine of them. fifty-nine!! π§ the whole friend group, obsessed π₯
and that's the page, bestie π this lil gem comes to you straight out of ./drivers/thunderbolt, dated October 2026 β yeah, future-coded, we know π slay, bye πβ¨
π¦ 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