tb_switch_xhci_connect(9)
π tb_switch_xhci_connect β like, the internal xHCI hookup, bestie π
Okay so this is a page from the Kernel API Manual (section 9, the kernel-functions girlies) and it's all about tb_switch_xhci_connect. Buckle up, it's short but it delivers. β¨
πΈ NAME πΈ
tb_switch_xhci_connect β connect the internal xHCI. That's it, that's the whole vibe. π
π¦ SYNOPSIS π¦
int tb_switch_xhci_connect (struct tb_switch *sw );
Literally one argument, one return value, zero drama. Iconic. π
π ARGUMENTS π
swβ the router whose xHCI we're connecting. That's the whole thing, she's the main character of this call. π
π DESCRIPTION π
So here's the tea: you can call this on any router. Fr fr, any of them. No vibe check required at the door. π«Ά
For Alpine Ridge and Titan Ridge, though, she does some special flows β like actual extra choreography β that bring the xHCI functional for any device connected to the type-C port. Slay. π
β οΈ Okay but listen: call this only after the PCIe tunnel has been established. Not before. That's the rule. The PCIe tunnel is the prerequisite, periodt. π
And the cute part? The function only does the connect if it's not done already, so you can call it several times for the same router and it simply won't be weird about it. Lowkey thoughtful. π§
β RETURN β
0on success π- a negative errno otherwise π (you know the drill, negative means the vibe check failed)
π₯ SEE ALSO π₯
Kernel file ./drivers/thunderbolt/switch.c β plus this whole friend group right here:
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_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_disconnect(9)
Okay that's the whole page, bestie β go connect that xHCI and be iconic about it. π β¨
This cutie lives in ./drivers/thunderbolt and she's dated October 2026 β bookmark it, iykyk. ππ¦
π¦ 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