tb_switch_pcie_l1_enable(9)
π tb_switch_pcie_l1_enable(9) β a Kernel API Manual moment
Okay bestie, so this is from the Kernel API Manual, section 9 (that's the kernel-functions girlies π), and today's main character is tb_switch_pcie_l1_enable β yes the whole name, we don't abbreviate π
β¨ NAME β¨
tb_switch_pcie_l1_enable β literally just enabling the PCIe link to vibe its way into the L1 state π¦
β¨ SYNOPSIS β¨
int tb_switch_pcie_l1_enable (struct tb_switch *sw );
β¨ ARGUMENTS β¨
swβ the router you're telling to enable PCIe L1, no cap πΈ
β¨ DESCRIPTION β¨
So here's the tea β: for a Titan Ridge switch to enter CLx state, its PCIe bridges shall enable entry to the PCIe L1 state. Like, that's the whole requirement, it's giving non-negotiable π
And timing matters, bestie β this shall be called after the upstream PCIe tunnel was configured. Don't jump the gun π
Also, due to an Intel platforms limitation, this shall be called only for the first hop switch. First hop only. That's the rule, periodt π
β¨ RETURN β¨
0 on success, negative errno otherwise π (so like, check your return value, fr fr)
β¨ SEE ALSO β¨
Kernel file ./drivers/thunderbolt/switch.c β and the whole friend group π«Ά:
tb_switch_nvm_read(9)tb_port_state(9)tb_wait_for_port(9)tb_port_add_nfc_credits(9)tb_port_clear_counter(9)tb_port_unlock(9)tb_port_enable(9)tb_port_disable(9)tb_port_reset(9)tb_port_alloc_in_hopid(9)tb_port_alloc_out_hopid(9)tb_port_release_in_hopid(9)tb_port_release_out_hopid(9)tb_next_port_on_path(9)tb_port_get_link_speed(9)tb_port_get_link_generation(9)tb_port_get_link_width(9)tb_port_width_supported(9)tb_port_set_link_width(9)tb_port_set_lane_bonding(9)tb_port_lane_bonding_enable(9)tb_port_lane_bonding_disable(9)tb_port_wait_for_link_width(9)tb_port_update_credits(9)tb_port_is_enabled(9)tb_usb3_port_is_enabled(9)tb_usb3_port_enable(9)tb_pci_port_is_enabled(9)tb_pci_port_enable(9)tb_dp_port_hpd_is_active(9)tb_dp_port_hpd_clear(9)tb_dp_port_set_hops(9)tb_dp_port_is_enabled(9)tb_dp_port_enable(9)tb_switch_reset(9)tb_switch_wait_for_bit(9)tb_switch_alloc(9)tb_switch_alloc_safe_mode(9)tb_switch_configure(9)tb_switch_configuration_valid(9)tb_switch_lane_bonding_enable(9)tb_switch_lane_bonding_disable(9)tb_switch_set_link_width(9)tb_switch_configure_link(9)tb_switch_unconfigure_link(9)tb_switch_add(9)tb_switch_remove(9)tb_sw_set_unplugged(9)tb_switch_resume(9)tb_switch_suspend(9)tb_switch_query_dp_resource(9)tb_switch_alloc_dp_resource(9)tb_switch_dealloc_dp_resource(9)tb_switch_find_by_link_depth(9)tb_switch_find_by_uuid(9)tb_switch_find_by_route(9)tb_switch_find_port(9)tb_switch_xhci_connect(9)tb_switch_xhci_disconnect(9)
Okay that's the page!! π Sign-off time: this lil icon lives in ./drivers/thunderbolt, it's the October 2026 edition of the manual, and it's brought to you by the section-9 girlies β slay, go enable some L1 π₯π
π¦ 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