usb4_port_margining_caps(9)
π usb4_port_margining_caps(9) π
okay so bestie, welcome to the Kernel API Manual β¨ β this is the page for usb4_port_margining_caps(9), and honestly? she's a little icon. let's get into it π
β¨ NAME β¨
usb4_port_margining_caps β Read USB4 port margining capabilities π¦
πΈ SYNOPSIS πΈ
int usb4_port_margining_caps (struct tb_port *port , enum usb4_sb_target
target , u8 index , u32 *caps , size_t ncaps );
like, that's the whole vibe. five arguments, one int coming back at you π
π ARGUMENTS π
portβ the USB4 port, obvi. this is your main character πtargetβ the sideband target πindexβ the retimer index, but ONLY iftargetisUSB4_SB_TARGET_RETIMERβ οΈ otherwise it's not doing that job, bestiecapsβ an array with at least two elements where the results get parked π ΏοΈβ¨ncapsβ how many elements are actually chillin' in thecapsarray π’
π DESCRIPTION π
Reads the USB4 port lane margining capabilities into caps.
that's it, that's the whole paragraph. short and slays π no cap.
π₯ RETURN π₯
0 on success, negative errno otherwise π (so like, if you see something negative, that's a no from her fr fr)
π SEE ALSO π
kernel file ./drivers/thunderbolt/usb4.c β go read her, iykyk π
and then the whole group chat of siblings, all of them (9):
usb4_switch_check_wakes(9)usb4_switch_setup(9)usb4_switch_configuration_valid(9)usb4_switch_read_uid(9)usb4_switch_drom_read(9)usb4_switch_lane_bonding_possible(9)usb4_switch_set_wake(9)usb4_switch_set_sleep(9)usb4_switch_nvm_sector_size(9)usb4_switch_nvm_read(9)usb4_switch_nvm_set_offset(9)usb4_switch_nvm_write(9)usb4_switch_nvm_authenticate(9)usb4_switch_nvm_authenticate_status(9)usb4_switch_credits_init(9)usb4_switch_query_dp_resource(9)usb4_switch_alloc_dp_resource(9)usb4_switch_dealloc_dp_resource(9)usb4_port_index(9)usb4_switch_map_pcie_down(9)usb4_switch_map_usb3_down(9)usb4_switch_add_ports(9)usb4_switch_remove_ports(9)usb4_port_unlock(9)usb4_port_hotplug_enable(9)usb4_port_reset(9)usb4_port_configure(9)usb4_port_unconfigure(9)usb4_port_configure_xdomain(9)usb4_port_unconfigure_xdomain(9)usb4_port_sb_read(9)usb4_port_sb_write(9)usb4_port_router_offline(9)usb4_port_router_online(9)usb4_port_enumerate_retimers(9)usb4_port_clx_supported(9)usb4_port_asym_supported(9)usb4_port_asym_set_link_width(9)usb4_port_asym_start(9)usb4_port_hw_margin(9)usb4_port_sw_margin(9)usb4_port_sw_margin_errors(9)usb4_port_retimer_set_inbound_sbtx(9)usb4_port_retimer_unset_inbound_sbtx(9)usb4_port_retimer_is_last(9)usb4_port_retimer_is_cable(9)usb4_port_retimer_nvm_sector_size(9)usb4_port_retimer_nvm_set_offset(9)usb4_port_retimer_nvm_write(9)usb4_port_retimer_nvm_authenticate(9)usb4_port_retimer_nvm_authenticate_status(9)usb4_port_retimer_nvm_read(9)usb4_usb3_port_max_link_rate(9)usb4_usb3_port_allocated_bandwidth(9)usb4_usb3_port_allocate_bandwidth(9)usb4_usb3_port_release_bandwidth(9)usb4_dp_port_set_cm_id(9)usb4_dp_port_bandwidth_mode_supported(9)usb4_dp_port_bandwidth_mode_enabled(9)usb4_dp_port_set_cm_bandwidth_mode_supported(9)usb4_dp_port_group_id(9)usb4_dp_port_set_group_id(9)usb4_dp_port_nrd(9)usb4_dp_port_set_nrd(9)usb4_dp_port_granularity(9)usb4_dp_port_set_granularity(9)usb4_dp_port_set_estimated_bandwidth(9)usb4_dp_port_allocated_bandwidth(9)usb4_dp_port_allocate_bandwidth(9)usb4_dp_port_requested_bandwidth(9)usb4_pci_port_set_ext_encapsulation(9)usb4_pci_port_ltssm_state(9)
likeβ¦ that is a LOT of siblings and every one of them is invited to the party π«Άπ
π real talk though: theindexargument only means anything whentargetisUSB4_SB_TARGET_RETIMER. don't be out here passing a retimer index for a non-retimer target, that's not the move π
and that's the page, bestie!! πβ this lil beauty comes to you from ./drivers/thunderbolt and she's dated October 2026 β put that in your calendar ποΈπ mwah, go read a kernel file, ily π§β¨
π¦ 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