usb4_port_sb_write(9)
π usb4_port_sb_write β a kernel API manual moment
okay so first things first: this is a page from the Kernel API Manual, and today's main character is usb4_port_sb_write(9). she writes to sideband registers. that's it, that's the vibe. let's get into it bestie π
β¨ NAME β¨
usb4_port_sb_write β Write to sideband register
like, literally just write to a sideband register. no cap.
πΈ SYNOPSIS πΈ
int usb4_port_sb_write (struct tb_port *port , enum usb4_sb_target
target , u8 index , u8 reg , const void *buf , u8 size );
six args, one int coming back at you. let's meet the cast π«Ά
π¦ ARGUMENTS π¦
portβ the USB4 port you're writing to. the whole point, honestly.targetβ which sideband target we're talking to.indexβ the Retimer index, but only iftargetisUSB4_SB_TARGET_RETIMER. otherwise she's just sitting there, ignore her.regβ the sideband register index. this is where the data goes, iykyk.bufβ the data you're writing. the good stuff.sizeβ size ofbuf. yes, she needs to know how much.
π DESCRIPTION π
Writes buf to sideband register reg.
that's the whole description. short, sweet, iconic. main character energy, zero filler β¨
π₯ RETURN π₯
0 on success, negative errno otherwise. so if you get a negative number back, that's not a slay, that's a vibe check failure π check the errno.
π SEE ALSO π
Kernel file ./drivers/thunderbolt/usb4.c β and honestly this list is giving "whole extended friend group," so here's everyone:
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_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_margining_caps(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)
and that's the page!! π§ credits roll: this came out of ./drivers/thunderbolt, dated October 2026, and it's filed under usb4_port_sb_write(9). mwah π go write some sideband registers responsibly bestie π
π¦ 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