tb_switch_set_link_width(9)
π tb_switch_set_link_width(9) β the Kernel API Manual glow-up π¦
okay so bestie, welcome to the Kernel API Manual page for tb_switch_set_link_width(9) β yes that's the whole title, it's a mouthful, we love her anyway β¨
πΈ NAME πΈ
tb_switch_set_link_width β configure router link width π literally just setting the width of a router's link, that's the whole gig
β¨ SYNOPSIS β¨
int tb_switch_set_link_width (struct tb_switch *sw , enum tb_link_width
width );
that's the whole signature, no cap π«Ά
π¦ ARGUMENTS π¦
swβ the router you're configuring, aka the main character of this operation πwidthβ the new link width, the fresh fit you're putting her in π
π DESCRIPTION π
So here's the tea: this sets the device router link width to width β and the perspective that matters is the router upstream port one, okay? Not the downstream side, the upstream side. Keep that straight, iykyk.
It also supports asymmetric links if the routers on both sides of the link support it π§ β so yeah, the two ends can lowkey be doing different things, that's allowed.
β οΈ It does nothing for the host router. Like, nothing-nothing. Don't come for the host router with this one, she's not participating π
β RETURN β
0 on success, and a negative errno otherwise π β so if you get a negative number back, that's not a vibe, that's an error.
π SEE ALSO π
Kernel file ./drivers/thunderbolt/switch.c, plus the whole friend group:
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_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_connect(9)tb_switch_xhci_disconnect(9)
like, the entire thunderbolt port extended family showed up to the function call, obsessed π₯π
π and that's the page!! π
cute little sign-off for the credits bestie: this one comes to you from ./drivers/thunderbolt, dated October 2026 β periodt, that's the footer, love you byeeeee ππ
ππ«Ά
π¦ 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