Hi Javier, On Fri, Feb 05, 2016 at 04:09:52PM -0300, Javier Martinez Canillas wrote: > V4L2 sub-devices might need to do initialization that depends on being > registered with a V4L2 device. As an example, sub-devices with Media > Controller support may need to register entities and create pad links. > > Execute the registered_async callback after the sub-device has been > registered with the V4L2 device so the driver can do any needed init. > > Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx> > --- > > drivers/media/v4l2-core/v4l2-async.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > index 5bada202b2d3..716bfd47daab 100644 > --- a/drivers/media/v4l2-core/v4l2-async.c > +++ b/drivers/media/v4l2-core/v4l2-async.c > @@ -119,6 +119,13 @@ static int v4l2_async_test_notify(struct v4l2_async_notifier *notifier, > return ret; > } > > + ret = v4l2_subdev_call(sd, core, registered_async); > + if (ret < 0) { > + if (notifier->unbind) > + notifier->unbind(notifier, sd, asd); > + return ret; > + } > + > if (list_empty(¬ifier->waiting) && notifier->complete) > return notifier->complete(notifier); I noticed this just now but what do you need this and the next patch for? We already have a callback for the same purpose: it's v4l2_subdev_ops.internal_ops.registered(). And there's similar unregistered() callback as well. Could you use these callbacks instead? What made me notice this is because the two patches break all other drivers that do not implement registered_async(). This would be fixed by your follow-up patch which is not merged, but the real question is: are these patches needed to begin with? -- Kind regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html