v4l2_async_...wnode_remote(9)
π 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 tostruct 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 tostruct 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_connectionshall 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 π
- Kernel file
./include/media/v4l2-async.h enum v4l2_async_match_type(9)struct v4l2_async_match_desc(9)struct v4l2_async_connection(9)struct v4l2_async_notifier_operations(9)struct v4l2_async_notifier(9)struct v4l2_async_subdev_endpoint(9)v4l2_async_debug_init(9)v4l2_async_nf_init(9)v4l2_async_subdev_nf_init(9)v4l2_async_nf_add_fwnode(9)v4l2_async_nf_add_i2c(9)v4l2_async_subdev_endpoint_add(9)v4l2_async_connection_unique(9)v4l2_async_nf_register(9)v4l2_async_nf_unregister(9)v4l2_async_nf_cleanup(9)v4l2_async_register_subdev(9)v4l2_async_register_subdev_sensor(9)v4l2_async_unregister_subdev(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms