i3c_hci_sysdev(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ i3c_hci_sysdev(9) ✨

okay so this is a page from the Kernel API Manual, and bestie, it's a tiny little function that saves you from a very specific kind of heartbreak πŸ’–


🌸 NAME 🌸

i3c_hci_sysdev β€” the lil' helper that tells you which device to actually use for DMA and for system PM 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

struct device * i3c_hci_sysdev (struct device *dev );

πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” the device that the HCI controller is bound to. like, that's your starting point, that's the one you got handed πŸ‘‘
  • ok that's it, there's literally only one argument, she's low-maintenance πŸ’…

πŸ’œ DESCRIPTION πŸ’œ

so here's the situation. when an IOMMU is enabled, your DMA API calls have to use the device that the IOMMU setup was actually done for. no cap. that's the whole vibe check.

and under PCI enumeration, that device is the PCI device β€” not the "mipi-i3c-hci" platform device sitting underneath it. the way that the platform device is right there and looks so convenient and is not the one 😭

fr fr, do not just grab the platform device because it's closer. that's not the main character. the PCI device is the main character here.

also, bestie β€” the same device owns system PM and the wakeup configuration. so like, one device to rule them all, basically ✨


πŸ”₯ RETURN πŸ”₯

  • dev's parent, if dev is a PCI device πŸ‘‘
  • otherwise, just dev itself, no changes, she stays as she is πŸ’…

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/i3c/master/mipi-i3c-hci/core.c β€” go read it, iykyk πŸ“

🧚 and that's the whole page!! short and iconic, honestly. go forth and use the right device for your DMA calls, bestie, the IOMMU is watching πŸ‘€

that was i3c_hci_sysdev(9), brought to you by the ./drivers/i3c/master/mipi-i3c-hci directory, dated October 2026 β€” mwah, love u, bye πŸ’–πŸŽ€πŸ’œ

πŸ“¦ where this page comes from