···2323/* A random max subdevice number, used to allocate an array on stack */2424#define V4L2_MAX_SUBDEVS 128U25252626+/**2727+ * enum v4l2_async_match_type - type of asynchronous subdevice logic to be used2828+ * in order to identify a match2929+ *3030+ * @V4L2_ASYNC_MATCH_CUSTOM: Match will use the logic provided by &struct3131+ * v4l2_async_subdev.match ops3232+ * @V4L2_ASYNC_MATCH_DEVNAME: Match will use the device name3333+ * @V4L2_ASYNC_MATCH_I2C: Match will check for I2C adapter ID and address3434+ * @V4L2_ASYNC_MATCH_OF: Match will use OF node3535+ *3636+ * This enum is used by the asyncrhronous sub-device logic to define the3737+ * algorithm that will be used to match an asynchronous device.3838+ */2639enum v4l2_async_match_type {2740 V4L2_ASYNC_MATCH_CUSTOM,2841 V4L2_ASYNC_MATCH_DEVNAME,···10491 struct v4l2_async_subdev *asd);10592};106939494+/**9595+ * v4l2_async_notifier_register - registers a subdevice asynchronous notifier9696+ *9797+ * @v4l2_dev: pointer to &struct v4l2_device9898+ * @notifier: pointer to &struct v4l2_async_notifier9999+ */107100int v4l2_async_notifier_register(struct v4l2_device *v4l2_dev,108101 struct v4l2_async_notifier *notifier);102102+103103+/**104104+ * v4l2_async_notifier_unregister - unregisters a subdevice asynchronous notifier105105+ *106106+ * @notifier: pointer to &struct v4l2_async_notifier107107+ */109108void v4l2_async_notifier_unregister(struct v4l2_async_notifier *notifier);109109+110110+/**111111+ * v4l2_async_register_subdev - registers a sub-device to the asynchronous112112+ * subdevice framework113113+ *114114+ * @sd: pointer to &struct v4l2_subdev115115+ */110116int v4l2_async_register_subdev(struct v4l2_subdev *sd);117117+118118+/**119119+ * v4l2_async_unregister_subdev - unregisters a sub-device to the asynchronous120120+ * subdevice framework121121+ *122122+ * @sd: pointer to &struct v4l2_subdev123123+ */111124void v4l2_async_unregister_subdev(struct v4l2_subdev *sd);112125#endif