i3c_bus_normaluse_lock(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ i3c_bus_normaluse_lock(9) ✨

okay so this is a page straight out of the Kernel API Manual, and we're talking about i3c_bus_normaluse_lock β€” the little function that locks the bus for a normal operation πŸ’… buckle up bestie


🌸 NAME 🌸

i3c_bus_normaluse_lock β€” lock the bus for a normal operation πŸ”’βœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

void i3c_bus_normaluse_lock (struct i3c_bus *bus );

like, that's it. that's the whole call. iconic.


πŸŽ€ ARGUMENTS πŸŽ€

  • bus β€” the I3C bus you're taking the lock on 🫢 (yes, that bus)

πŸ’– DESCRIPTION πŸ’–

so the way this works: this function takes the bus lock for any operation that is not a maintenance operation (and if you wanna know what counts as maintenance, go peek at i3c_bus_maintenance_lock β€” that page has a non-exhaustive list of them πŸ‘€). basically, all communications with I3C devices are normal operations β€” like HDR, SDR transfers, or CCC commands that don't change bus state or the I3C dynamic address. no cap, that's the whole vibe ✨

⚠️ but hold on, bestie β€” this lock is not guaranteeing serialization of normal operations. in other words, transfer requests passed to the I3C master can be submitted in parallel, so I3C master drivers have to use their own locking to make sure two different communications aren't inter-mixed, or that access to the output/input queue isn't done while the engine is busy. fr fr, don't skip that part 😭

🌈 SEE ALSO 🌈

kernel file ./drivers/i3c/master.c plus these absolute legends:


and that's the page!! brought to you by ./drivers/i3c, dated October 2026, and yes the title it ships under is literally i3c_bus_normaluse_lock(9) πŸŽ€ slay, go lock that bus bestie πŸ’œ

πŸ“¦ where this page comes from