On 09/12/17 10:42, Sakari Ailus wrote: > The information on how many async sub-devices would be bindable to a > notifier is typically dependent on information from platform firmware and > it's not driver's business to be aware of that. > > Many V4L2 main drivers are perfectly usable (and useful) without async > sub-devices and so if there aren't any around, just proceed call the > notifier's complete callback immediately without registering the notifier > itself. > > If a driver needs to check whether there are async sub-devices available, > it can be done by inspecting the notifier's num_subdevs field which tells > the number of async sub-devices. > > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> Acked-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> Regards, Hans > --- > drivers/media/v4l2-core/v4l2-async.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > index 7b396ff4302b..4525b03d59c1 100644 > --- a/drivers/media/v4l2-core/v4l2-async.c > +++ b/drivers/media/v4l2-core/v4l2-async.c > @@ -170,14 +170,16 @@ int v4l2_async_notifier_register(struct v4l2_device *v4l2_dev, > struct v4l2_async_subdev *asd; > int i; > > - if (!v4l2_dev || !notifier->num_subdevs || > - notifier->num_subdevs > V4L2_MAX_SUBDEVS) > + if (!v4l2_dev || notifier->num_subdevs > V4L2_MAX_SUBDEVS) > return -EINVAL; > > notifier->v4l2_dev = v4l2_dev; > INIT_LIST_HEAD(¬ifier->waiting); > INIT_LIST_HEAD(¬ifier->done); > > + if (!notifier->num_subdevs) > + return v4l2_async_notifier_call_complete(notifier); > + > for (i = 0; i < notifier->num_subdevs; i++) { > asd = notifier->subdevs[i]; > > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html