STRUCT V4L2_ASYNC_CONNECTION(9)
π NAME π
struct v4l2_async_connection β the sub-device connection descriptor, as known to a bridge π«Ά
okay so real quick, this page is literally struct v4l2_async_connection(9) from the Kernel API Manual and it's giving "small struct, big responsibilities." let's get into it β¨
π SYNOPSIS π
struct v4l2_async_connection {
struct v4l2_async_match_desc match;
struct v4l2_async_notifier *notifier;
struct list_head asc_entry;
struct list_head asc_subdev_entry;
struct v4l2_subdev *sd;
};
no cap, that's the whole thing. five members. iconic. π
πΈ Members πΈ
matchβ the struct of match type plus all the per-bus type matching data sets. this is the "who are we even looking for" part of the vibe check π¦notifierβ the async notifier that this connection is related to. bestie, it knows its people πasc_entryβ used to addstruct v4l2_async_connectionobjects to the notifier'swaiting_listordone_list. yes, both. it's versatile like that β¨asc_subdev_entryβ an entry in thestruct v4l2_async_subdev.asc_listlist. lowkey just a list hookup πsdβ the related sub-device. the main character this whole struct is simping for π
π¦ Description π¦
okay this is the one rule you actually have to remember, bestie, so pay attention π
when this struct gets used as a member inside a driver-specific struct, the driver-specific struct shall contain struct v4l2_async_connection as its first member. first. as in position zero. as in no skipping ahead. it's giving "this is the foundation, everything else stacks on top of it" π§
literally do not put it anywhere else. first member. that's the assignment, periodt. π₯
π SEE ALSO π
all the sister pages and friends-of-the-family, in no particular order, but every single one because we don't leave anyone out at this function's birthday party π
Kernel file ./include/media/v4l2-async.h, enum v4l2_async_match_type(9), struct v4l2_async_match_desc(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_fwnode_remote(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)
like, go read those too. iykyk π
β¨ and that's a wrap on struct v4l2_async_connection(9), brought to you from ./include/media, dated October 2026, with the header label struct v4l2_...c_connection(9) because terminal column widths are haters π anyway ily, go write that driver struct correctly, mwah π«Άππ
π¦ 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