Re: [PATCH 2/8] [media] v4l2-async: call registered_async after subdev registration
From: Sakari Ailus
Date: Thu Aug 11 2016 - 07:10:53 EST
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