struct v4l2_async_notifier — v4l2_device notifier data
struct v4l2_async_notifier { unsigned int num_subdevs; struct v4l2_async_subdev ** subdevs; struct v4l2_device * v4l2_dev; struct list_head waiting; struct list_head done; struct list_head list; int (* bound) (struct v4l2_async_notifier *notifier,struct v4l2_subdev *subdev,struct v4l2_async_subdev *asd); int (* complete) (struct v4l2_async_notifier *notifier); void (* unbind) (struct v4l2_async_notifier *notifier,struct v4l2_subdev *subdev,struct v4l2_async_subdev *asd); };
number of subdevices
array of pointers to subdevice descriptors
pointer to struct v4l2_device
list of struct v4l2_async_subdev, waiting for their drivers
list of struct v4l2_subdev, already probed
member in a global list of notifiers
a subdevice driver has successfully probed one of subdevices
all subdevices have been probed successfully
a subdevice is leaving