STRUCT V4L2_ASYNC_MATCH_DESC(9)
π struct v4l2_async_match_desc β the async connection match info page
okay so this is a page from the Kernel API Manual, bestie, and it's all about struct v4l2_async_match_desc β literally the little info packet that says "hey, this is how you'll know it's me" when async connections are getting matched up. iykyk π¦
β¨ NAME β¨
struct v4l2_async_match_desc β async connection match information π
like, the matchmaking profile for async devices. no cap.
πΈ SYNOPSIS πΈ
struct v4l2_async_match_desc {
enum v4l2_async_match_type type;
union {
struct fwnode_handle *fwnode;
struct {
int adapter_id;
unsigned short address;
} i2c;
};
};
it's giving "small struct, big responsibilities" honestly π
π Members π
typeβ the type of match that will be used. this is the main character field fr, it decides which of the union members actually means something π«{unnamed_union}β anonymous. yep, she's unnamed, she's mysterious, she just is πfwnodeβ a pointer tostruct fwnode_handleto be matched. used ifmatch_typeisV4L2_ASYNC_MATCH_TYPE_FWNODE. so if you're doing the fwnode thing, this is your girl π§i2cβ an embedded struct with the I2C parameters to be matched. bothmatch.i2c.adapter_idandmatch.i2c.addressshould be matched. used ifmatch_typeisV4L2_ASYNC_MATCH_TYPE_I2C. both of them, bestie, not just one, it's a package deal πi2c.adapter_idβ the I2C adapter ID to be matched. used ifmatch_typeisV4L2_ASYNC_MATCH_TYPE_I2C. πi2c.addressβ the I2C address to be matched. used ifmatch_typeisV4L2_ASYNC_MATCH_TYPE_I2C. β
lowkey the pattern here is:typepicks the lane, and then only the matching member matters. checktypefirst, always, or you're just guessing π₯
π¦ SEE ALSO π¦
all the sibling pages, and yes there are so many, we love a big family π β they all live in the kernel file ./include/media/v4l2-async.h:
enum v4l2_async_match_type(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_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)
and that's the whole vibe check, bestie, you ate that π β¨
sign-off time π β this page comes from ./include/media and is dated October 2026 (the year is NOT a typo, don't come for me π), and the page itself is struct v4l2_...c_match_desc(9). mwah, go read the source, ily π«Άπ
π¦ 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