[media] media: i2c: mt9p031: add support for asynchronous probing
authorLad, Prabhakar <prabhakar.csengg@gmail.com>
Fri, 27 Feb 2015 16:10:19 +0000 (13:10 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 3 Apr 2015 00:28:54 +0000 (21:28 -0300)
Both synchronous and asynchronous mt9p031 subdevice probing
is supported by this patch.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/i2c/mt9p031.c

index 2bf0e6843955c68bdb940058cb41491183a09cb4..9258d048a1e3da0e35dce850dabfde120da62ea9 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/videodev2.h>
 
 #include <media/mt9p031.h>
+#include <media/v4l2-async.h>
 #include <media/v4l2-ctrls.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-subdev.h>
@@ -1145,6 +1146,10 @@ static int mt9p031_probe(struct i2c_client *client,
        }
 
        ret = mt9p031_clk_setup(mt9p031);
+       if (ret)
+               goto done;
+
+       ret = v4l2_async_register_subdev(&mt9p031->subdev);
 
 done:
        if (ret < 0) {
@@ -1162,7 +1167,7 @@ static int mt9p031_remove(struct i2c_client *client)
        struct mt9p031 *mt9p031 = to_mt9p031(subdev);
 
        v4l2_ctrl_handler_free(&mt9p031->ctrls);
-       v4l2_device_unregister_subdev(subdev);
+       v4l2_async_unregister_subdev(subdev);
        media_entity_cleanup(&subdev->entity);
        mutex_destroy(&mt9p031->power_lock);