usb4_switch_credits_init(9)
π usb4_switch_credits_init(9) β from the Kernel API Manual, bestie π
okay so real talk, this is a kernel API page and the manual it lives in is literally called Kernel API Manual, so you already know we're in the grown-up zone. grab a strawberry drink π and let's get into it.
β¨ NAME β¨
usb4_switch_credits_init β bestie, this one reads buffer allocation parameters. that's the whole job. she reads the params, that's her moment π
β¨ SYNOPSIS β¨
int usb4_switch_credits_init (struct tb_switch *sw );
β¨ ARGUMENTS β¨
swβ the USB4 router. yes, THE router. main character energy only π
β¨ DESCRIPTION β¨
so what she does is: she reads the sw buffer allocation parameters, and then she initializes the sw buffer allocation fields accordingly. like, she's matching the fit to the router, no cap π¦
and specifically β write this down because this is the actual point of the whole function β sw->credits_allocation gets set to true if these parameters can be used in tunneling. that's the vibe check the entire function is doing, fr fr β¨
β¨ RETURN β¨
0on success π- a negative errno otherwise π (yes, negative. it's giving "something went wrong in a very Linux way")
β¨ SEE ALSO β¨
the kernel file she lives in is ./drivers/thunderbolt/usb4.c, and omg the friend group on this page is HUGE. literally the whole thunderbolt roster showed up π here's everybody, in order:
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_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_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β¦ she knows everybody. iykyk π«Ά
ngl the whole page is short and sweet, but that credits_allocation flag is the moment. don't skip it. π
and that's the tea! π this lil legend lives in ./drivers/thunderbolt, and the page is dated October 2026 β so yeah, she's from the future and still slaying. bye bestie, go read some buffer allocation parameters π
β¨πΈ
π¦ 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