devm_cxl_add_rch_dport(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… devm_cxl_add_rch_dport(9) β€” the kernel API manual, but make it make sense

okay bestie so this page lives in the Kernel API Manual (yes, that manual) and it's all about devm_cxl_add_rch_dport β€” say that five times fast, I dare you 😭 it's the function that appends RCH downstream port data to a cxl_port. That's the whole vibe. CXL core, RCH downstream ports, devm-managed. Slay.


✨ SYNOPSIS ✨

struct cxl_dport * devm_cxl_add_rch_dport (struct cxl_port *port ,
struct device *dport_dev , int port_id , resource_size_t rcrb );

that's the signature, copy it exactly, don't come for me 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • port β€” the cxl_port that references this dport. like, the port that's claiming this downstream port as its own, iykyk.
  • dport_dev β€” the firmware or PCI device representing the dport. literally the device telling us "hi, I'm the downstream port πŸ’"
  • port_id β€” the identifier for this dport in a decoder's target list. that's where it shows up, that's its little name tag.
  • rcrb β€” the mandatory location of a Root Complex Register Block. mandatory!! not optional, not "if u feel like it", mandatory πŸ”₯

πŸ¦‹ DESCRIPTION πŸ¦‹

so the actual description here is, and I quote the source of truth: See CXL 3.0 9.11.8 CXL Devices Attached to an RCH. that's it. that's the lore. go read the spec section, it's giving "the real documentation is the friends we made along the way" πŸ˜­πŸ“–


🌈 SEE ALSO 🌈

bestie, the reading list is long and honestly iconic. here's every single one, no skips:

like, go off, cross-reference section πŸ‘‘ go read all of them, fr fr.


ngl this one's short but it's mighty β€” the key takeaway is: rcrb is mandatory, and port_id shows up in a decoder's target list. don't forget it πŸ’€

and that's the whole page, bestie πŸ’– this gem comes out of ./drivers/cxl/core, dated October 2026, and if u ever need to find it again just yell devm_cxl_add_rch_dport(9) into the group chat and someone will pull it up πŸŽ€βœ¨

πŸ“¦ where this page comes from