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