tb_switch_pcie_l1_enable(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 🫢:


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