v4l2_async_...wnode_remote(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… v4l2_async_nf_add_fwnode_remote β€” the Kernel API Manual, bestie edition πŸŽ€

Okay so this page lives in the Kernel API Manual, and it's literally all about v4l2_async_nf_add_fwnode_remote. Yes the header is out here looking like v4l2_async_...wnode_remote(9) with the middle chewed off β€” that's just the man page doin its lil truncation thing, the real name is the full one. Stay with me, it's actually not scary πŸ’–


✨ NAME ✨

v4l2_async_nf_add_fwnode_remote β€” the function that allocates and adds a fwnode remote async subdev to the notifier's master asc_list. Two jobs, one function, main character energy fr fr πŸ‘‘


🌸 SYNOPSIS 🌸

v4l2_async_nf_add_fwnode_remote (notifier , ep , type );

Like, that's the whole call. Three args, no cap. ✨


πŸ¦‹ ARGUMENTS πŸ¦‹

  • notifier β€” pointer to struct v4l2_async_notifier. This is the vibe-holder, the notifier you're adding stuff to 🫢
  • ep β€” the local endpoint pointing to the remote connection that's gonna be matched. It's a pointer to struct fwnode_handle. Note the word local, bestie β€” that's the whole plot twist iykyk πŸ‘€
  • type β€” the type of the driver's async connection struct. And here's the rule: struct v4l2_async_connection shall be the first member of the driver's async connection struct, i.e. both begin at the same memory address. So your struct gotta have it sitting right up front, first in line, main character position. Don't be weird about it πŸ’…

πŸ”₯ DESCRIPTION πŸ”₯

So what does it actually do? Okay:

It gets the remote endpoint of a given local endpoint, sets it up for fwnode matching, and adds the async connection to the notifier's asc_list. Slay. ✨

Also (and this part matters, don't skip it): the function gets a reference of the fwnode, which is released later, at notifier cleanup time. So it's holding onto that ref for you until cleanup β€” not forever, just till then. πŸŽ€

And the comparison you need: this is just like v4l2_async_nf_add_fwnode, with the exception that the fwnode refers to a local endpoint, not the remote one. That's the entire difference. That's it. That's the tea β˜•πŸ’…


🌈 SEE ALSO 🌈


Go read v4l2_async_nf_add_fwnode(9) right after this one, bestie β€” the doc literally frames this function as "that, but local" so the pair makes way more sense together πŸ§šπŸ’œ

And that's the page!! Signing off from ./include/media, dated October 2026, in the v4l2_async_...wnode_remote(9) era β€” mwah, go write some gorgeous async subdev code, you got this πŸ“πŸ’–πŸŽ€

πŸ“¦ where this page comes from