usb4_switch_map_usb3_down(9)
π usb4_switch_map_usb3_down
ok so real talk, this is a page from the Kernel API Manual, section 9 (that's the kernel-API section bestie, not "random command you type in ur shell" β big difference β¨). It's the usb4_switch_map_usb3_down(9) page, and honestly? it's short, it's sweet, it's iconic. Let's get into it π
β¨ NAME β¨
usb4_switch_map_usb3_down β maps a USB4 port over to a USB3 downstream adapter π¦
πΈ SYNOPSIS πΈ
struct tb_port * usb4_switch_map_usb3_down (struct tb_switch *sw , const
struct tb_port *port );
π ARGUMENTS π
swβ the USB4 router. that's the whole box, the main character of the operation πportβ a USB4 port. one (1) single port, the one we're asking about π«Ά
β DESCRIPTION β
okay so here's the vibe: USB4 routers keep a direct mapping between their USB4 ports and their USB 3.x downstream adapters β specifically the spots where the USB 3.x topology branches out and keeps going. no cap, it's wired in π₯
this function does exactly one (1) job and does it slay: it hands you back the corresponding downstream USB 3.x adapter.
and if that mapping just... isn't a thing? if it wasn't possible? you get NULL. no adapter, no problem, no drama π
π§ RETURN π§
a pointer to struct tb_port, OR NULL if it wasn't found. that's it, that's the whole return value, periodt π
π SEE ALSO π
alright bestie, buckle up, because this list is long β and i mean every single one of these is getting its moment π the kernel file in question is ./drivers/thunderbolt/usb4.c, and the whole squad is:
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_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 i said. every single one. iykyk π«Ά
okay that's the whole page, go touch some hardware bestie π this cutie lives in ./drivers/thunderbolt, the manual's dated October 2026, and it's brought to you by the Kernel API Manual β mwah, stan, bye πβ¨π
π¦ 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