usb4_switch...ration_valid(9)
π usb4_switch_configuration_valid π
okay so bestie, welcome to the Kernel API Manual β¨ β yes we're literally reading kernel docs together, this is our bonding era π«Ά. Today's main character is usb4_switch...ration_valid(9) (yeah the header truncates it, the full name is right below, don't panic π).
πΈ NAME πΈ
usb4_switch_configuration_valid β sets the tunneling configuration to be valid. that's it, that's the whole vibe π
β¨ SYNOPSIS β¨
int usb4_switch_configuration_valid (struct tb_switch *sw );
π ARGUMENTS π
swβ the USB4 router. that's your lil guy, your router bestie, the one we're doing all this for π
π¦ DESCRIPTION π¦
So what it does: it sets the configuration valid bit for the router. iconic. no cap.
Here's the part you actually need to remember though π:
You must call this before any tunnels can be set through the router, and after usb4_switch_setup has been called. order matters, bestie, it's giving prerequisite energy π§
And yes, it can be called on host routers and device routers β but for the host ones it does literally nothing (does nothing for the former). so like... call it, it just won't do anything there, no drama π
β RETURN β
0on success π- negative errno otherwise π (that's the "something went sideways" signal, check it fr fr)
π₯ SEE ALSO π₯
Kernel file ./drivers/thunderbolt/usb4.c β plus this whole friend group of functions, all of them, yes all of them, I'm not skipping a single one π:
usb4_switch_check_wakes(9),usb4_switch_setup(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_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 whole page bestie!! π this lil gem lives in ./drivers/thunderbolt, and the date on the tin is October 2026 β so like, future vibes only πβ¨ go forth and set that valid bit, iykyk π
π¦ 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