[media] v4l2-async: call registered_async after subdev registration
authorJavier Martinez Canillas <javier@osg.samsung.com>
Fri, 5 Feb 2016 19:09:52 +0000 (17:09 -0200)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 10 Feb 2016 11:37:36 +0000 (09:37 -0200)
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@osg.samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/v4l2-core/v4l2-async.c

index 5bada202b2d38c264cbcd87022278d699e411a40..716bfd47daabd79827511969aa5da64bb9b290c1 100644 (file)
@@ -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(&notifier->waiting) && notifier->complete)
                return notifier->complete(notifier);