tb_dp_port_set_hops(9)
π tb_dp_port_set_hops(9)
okay so bestie, welcome to the Kernel API Manual β this one is an entry in section 9 (that's the kernel-functions corner of the man pages, iykyk). Buckle up, we're setting hop IDs on a DisplayPort thingy and honestly? kinda iconic.
β¨ NAME β¨
tb_dp_port_set_hops β Set video/aux Hop IDs for DP port
Like, that's the whole vibe. You give it a DP port, you give it hop IDs, it sets them. Slay.
πΈ SYNOPSIS πΈ
int tb_dp_port_set_hops (struct tb_port *port , unsigned int video ,
unsigned int aux_tx , unsigned int aux_rx );
π ARGUMENTS π
portβ the DP IN/OUT port we're setting hops on. the main character, fr.videoβ the Video Hop ID. yes bestie, that's the one for the pixels π₯οΈaux_txβ the AUX TX Hop ID. the sending-side AUX sidekick.aux_rxβ the AUX RX Hop ID. its receiving counterpart. they're a duo, we don't split them.
π¦ DESCRIPTION π¦
So what does it actually do? It programs the specified Hop IDs for a DP IN/OUT port. That's it, that's the whole job, and it eats every time π
But here's the lowkey important bit: it can be called for USB4 router DP adapters too β but it doesn't actually program the values in that case, because the fields are read-only there. So likeβ¦ the call goes through, it just doesn't write anything. Not me showing up to a function call that's just vibes π
β οΈ heads up bestie: don't expect hop IDs to change on USB4 router DP adapters, because those fields are read-only. no cap.
π₯ RETURN π₯
0on success π- negative
errnootherwise π
π SEE ALSO π
The kernel file lives at ./drivers/thunderbolt/switch.c, and here's the whole friend group β every single one of them, in order, no gatekeeping:
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_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_connect(9)tb_switch_xhci_disconnect(9)
okay that's the page!! π it comes from the ./drivers/thunderbolt source, dated October 2026, and it's filed under section 9 of the Kernel API Manual. go forth and set those hops, bestie β you're gonna do amazing π«Άβ¨
π¦ 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