i3c_master_h...enabled_devs(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– i3c_master_has_wakeup_enabled_devs β€” the Kernel API Manual, section 9, bestie edition πŸ’–

okay so real talk, this one lives in the Kernel API Manual (that's the manual name, we're folding it in up top like a lil name tag πŸŽ€) and it's section 9. It's a tiny lil yes-or-no check and honestly it ate.


✨ NAME ✨

i3c_master_has_wakeup_enabled_devs β€” the vibe check that tells you if any device on the bus can wake the system up πŸ˜΄πŸ””


🌸 SYNOPSIS 🌸

bool i3c_master_has_wakeup_enabled_devs (struct i3c_master_controller
*master );

literally just hand it your master controller and it hands you back a bool, no cap ✨


πŸ¦‹ ARGUMENTS πŸ¦‹

  • master β€” your I3C master controller. that's the whole argument. she's low maintenance, we respect her πŸ’…

πŸ’œ DESCRIPTION πŸ’œ

so what it does: it iterates over the devices on the bus and returns true if any device has system wakeup enabled and IBI enabled. both. at the same time. it's giving "and" not "or" 🫢

⚠️ okay important lore: whether a device is enabled for system wakeup is user space policy. it's settable at any time through the device's power/wakeup sysfs attribute. so the answer is only stable once user space is frozen. that's not me being dramatic, that's the manpage.

because of that, you call this from a system suspend callback. that's the assignment, bestie πŸ“‹βœ¨


πŸ”₯ RETURN πŸ”₯

  • true β€” some device may wake the system via IBI πŸ‘‘
  • false β€” nope, nobody's waking anybody πŸ™ˆ

🌈 SEE ALSO 🌈

the source is the kernel file ./drivers/i3c/master.c and here's the whole friend group, all of them, nobody left behind πŸ’–:

(and yes __i3c_master_add_i3c_dev_locked with the double underscore is a different function from i3c_master_add_i3c_dev_locked, don't @ me, that's just how it is 😭)


mwah πŸ’‹ that's the whole page. sourced straight from ./drivers/i3c, stamped October 2026, brought to you by the Kernel API Manual girlies. go freeze user space first, ily, bye πŸ§šβ€β™€οΈπŸ’œ

πŸ“¦ where this page comes from