usb4_port_re...m_set_offset(9)
π NAME π
usb4_port_retimer_nvm_set_offset β set the NVM write offset, bestie π
so this page is straight out of the Kernel API Manual, section 9, and it's about one very specific lil job: telling a retimer's NVM exactly where to start writing. iconic behavior only β¨
π SYNOPSIS π
int usb4_port_retimer_nvm_set_offset (struct tb_port *port , u8 index ,
unsigned int address );
like, that's the whole call. three args, one int back. no cap π«Ά
πΈ ARGUMENTS πΈ
portβ the USB4 port in question, your main character π¦indexβ which retimer we're talking about (the Retimer index)addressβ where the writing starts, aka the Start offset β¨
π§ DESCRIPTION π§
okay so here's the tea β β this function explicitly sets the NVM write offset. like, you're hand-picking the spot. deliberately. on purpose. π
now normally? when you're writing to NVM, this whole thing is done automatically by usb4_port_retimer_nvm_write. so this function is the "i'll do it myself" option, iykyk π
β RETURN β
0on success π- a negative errno otherwise π
that's it, that's the vibe check.
π SEE ALSO π
the kernel file lives at ./drivers/thunderbolt/usb4.c π and honestly the whole friend group shows up here, so let's go:
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_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_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... the whole extended universe showed up to the group chat π adorable.
ngl this one's short but it matters β if you're hand-rolling NVM writes, you're the one responsible for the offset, and nobody's gonna do it for you π
that's the page, bestie!! π«Ά written from ./drivers/thunderbolt, dated October 2026, and honestly? she ate. periodt π
β¨π
π¦ 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