pci_host_co...old_possible(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… pci_host_co...old_possible(9) β€” the Kernel API Manual, but make it make sense

okay so bestie, this is a page from the Kernel API Manual, and the function name is pci_host_common_d3cold_possible. Yes, the header truncates it to pci_host_co...old_possible(9) β€” not me being lazy, that's just how the man page renders it. We move. 🫢


✨ NAME ✨

pci_host_common_d3cold_possible β€” figure out whether the host bridge is allowed to yeet the devices into D3cold. 🧚


✨ SYNOPSIS ✨

bool pci_host_common_d3cold_possible (struct pci_host_bridge *bridge ,
bool *pme_capable );

literally just that. two args, one bool back. slay.


✨ ARGUMENTS ✨

  • bridge β€” the PCI host bridge we're checking. that's our main character for this function πŸ‘‘
  • pme_capable β€” a pointer that gets updated if there's any device that can generate PME from D3cold. think of it as the "hey, somebody here can still wake you up" flag 🌸

✨ DESCRIPTION ✨

So what it does: it walks the downstream PCIe endpoint devices πŸšΆβ€β™€οΈ and works out whether the host bridge is permitted to transition those devices into D3cold.

Here's the vibe check for when devices under a host bridge can actually enter D3cold:

  • like, all the active PCIe endpoints have to be in PCI_D3hot, and
  • any wakeup-enabled endpoint has to be capable of generating PME from D3cold.

Inactive endpoints? Ignored. not invited to the party πŸ™ˆ

And the pme_capable output is there so PCIe controller drivers can apply their own platform-specific handling to preserve wakeup functionality. it's giving "you handle your platform, i'll hand you the info" πŸ’…


✨ RETURN ✨

  • true β€” yes bestie, the host bridge may enter D3cold βœ…
  • false β€” nope, not today ❌

✨ SEE ALSO ✨


ngl, go read the other pci_host_common_* pages too β€” they're a whole friend group and this one is only one member of it πŸŽ€

okay that's the whole page!! source: ./drivers/pci/controller, dated October 2026, from the Kernel API Manual. mwah, go read some C πŸ’–πŸ¦‹β­

πŸ“¦ where this page comes from