From: Guennadi Liakhovetski <g.liakhovetski@gmx.de> To: linux-media@vger.kernel.org Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Hans Verkuil <hverkuil@xs4all.nl>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Sylwester Nawrocki <sylvester.nawrocki@gmail.com>, linux-sh@vger.kernel.org, Magnus Damm <magnus.damm@gmail.com>, Sakari Ailus <sakari.ailus@iki.fi>, Prabhakar Lad <prabhakar.lad@ti.com>, Guennadi Liakhovetski <g.liakhovetski@gmx.de> Subject: [PATCH v6 6/7] imx074: support asynchronous probing Date: Fri, 15 Mar 2013 21:27:52 +0000 [thread overview] Message-ID: <1363382873-20077-7-git-send-email-g.liakhovetski@gmx.de> (raw) In-Reply-To: <1363382873-20077-1-git-send-email-g.liakhovetski@gmx.de> Both synchronous and asynchronous imx074 subdevice probing is supported by this patch. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> --- v6: update to new v4l2-async API, use soc_camera_power_init() drivers/media/i2c/soc_camera/imx074.c | 24 +++++++++++++++++++++--- 1 files changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/soc_camera/imx074.c b/drivers/media/i2c/soc_camera/imx074.c index cee5345..74a5c3a 100644 --- a/drivers/media/i2c/soc_camera/imx074.c +++ b/drivers/media/i2c/soc_camera/imx074.c @@ -18,6 +18,7 @@ #include <linux/module.h> #include <media/soc_camera.h> +#include <media/v4l2-async.h> #include <media/v4l2-clk.h> #include <media/v4l2-subdev.h> #include <media/v4l2-chip-ident.h> @@ -79,6 +80,7 @@ struct imx074 { struct v4l2_subdev subdev; const struct imx074_datafmt *fmt; struct v4l2_clk *clk; + struct v4l2_async_subdev_list asdl; }; static const struct imx074_datafmt imx074_colour_fmts[] = { @@ -455,14 +457,28 @@ static int imx074_probe(struct i2c_client *client, priv->fmt = &imx074_colour_fmts[0]; + priv->asdl.subdev = &priv->subdev; + priv->asdl.dev = &client->dev; + priv->clk = v4l2_clk_get(&priv->subdev, "mclk"); - if (IS_ERR(priv->clk)) - return PTR_ERR(priv->clk); + if (IS_ERR(priv->clk)) { + dev_info(&client->dev, "Error %ld getting clock\n", PTR_ERR(priv->clk)); + return -EPROBE_DEFER; + } + + ret = soc_camera_power_init(&client->dev, ssdd); + if (ret < 0) + goto epwrinit; ret = imx074_video_probe(client); if (ret < 0) - v4l2_clk_put(priv->clk); + goto eprobe; + return v4l2_async_subdev_register(&priv->asdl); + +epwrinit: +eprobe: + v4l2_clk_put(priv->clk); return ret; } @@ -471,7 +487,9 @@ static int imx074_remove(struct i2c_client *client) struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); struct imx074 *priv = to_imx074(client); + v4l2_async_subdev_unregister(&priv->asdl); v4l2_clk_put(priv->clk); + if (ssdd->free_bus) ssdd->free_bus(ssdd); -- 1.7.2.5
WARNING: multiple messages have this Message-ID (diff)
From: Guennadi Liakhovetski <g.liakhovetski@gmx.de> To: linux-media@vger.kernel.org Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Hans Verkuil <hverkuil@xs4all.nl>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Sylwester Nawrocki <sylvester.nawrocki@gmail.com>, linux-sh@vger.kernel.org, Magnus Damm <magnus.damm@gmail.com>, Sakari Ailus <sakari.ailus@iki.fi>, Prabhakar Lad <prabhakar.lad@ti.com>, Guennadi Liakhovetski <g.liakhovetski@gmx.de> Subject: [PATCH v6 6/7] imx074: support asynchronous probing Date: Fri, 15 Mar 2013 22:27:52 +0100 [thread overview] Message-ID: <1363382873-20077-7-git-send-email-g.liakhovetski@gmx.de> (raw) In-Reply-To: <1363382873-20077-1-git-send-email-g.liakhovetski@gmx.de> Both synchronous and asynchronous imx074 subdevice probing is supported by this patch. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> --- v6: update to new v4l2-async API, use soc_camera_power_init() drivers/media/i2c/soc_camera/imx074.c | 24 +++++++++++++++++++++--- 1 files changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/soc_camera/imx074.c b/drivers/media/i2c/soc_camera/imx074.c index cee5345..74a5c3a 100644 --- a/drivers/media/i2c/soc_camera/imx074.c +++ b/drivers/media/i2c/soc_camera/imx074.c @@ -18,6 +18,7 @@ #include <linux/module.h> #include <media/soc_camera.h> +#include <media/v4l2-async.h> #include <media/v4l2-clk.h> #include <media/v4l2-subdev.h> #include <media/v4l2-chip-ident.h> @@ -79,6 +80,7 @@ struct imx074 { struct v4l2_subdev subdev; const struct imx074_datafmt *fmt; struct v4l2_clk *clk; + struct v4l2_async_subdev_list asdl; }; static const struct imx074_datafmt imx074_colour_fmts[] = { @@ -455,14 +457,28 @@ static int imx074_probe(struct i2c_client *client, priv->fmt = &imx074_colour_fmts[0]; + priv->asdl.subdev = &priv->subdev; + priv->asdl.dev = &client->dev; + priv->clk = v4l2_clk_get(&priv->subdev, "mclk"); - if (IS_ERR(priv->clk)) - return PTR_ERR(priv->clk); + if (IS_ERR(priv->clk)) { + dev_info(&client->dev, "Error %ld getting clock\n", PTR_ERR(priv->clk)); + return -EPROBE_DEFER; + } + + ret = soc_camera_power_init(&client->dev, ssdd); + if (ret < 0) + goto epwrinit; ret = imx074_video_probe(client); if (ret < 0) - v4l2_clk_put(priv->clk); + goto eprobe; + return v4l2_async_subdev_register(&priv->asdl); + +epwrinit: +eprobe: + v4l2_clk_put(priv->clk); return ret; } @@ -471,7 +487,9 @@ static int imx074_remove(struct i2c_client *client) struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client); struct imx074 *priv = to_imx074(client); + v4l2_async_subdev_unregister(&priv->asdl); v4l2_clk_put(priv->clk); + if (ssdd->free_bus) ssdd->free_bus(ssdd); -- 1.7.2.5
next prev parent reply other threads:[~2013-03-15 21:27 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-03-15 21:27 [PATCH v6 0/7] V4L2 clock and async patches and soc-camera example Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 1/7] media: V4L2: add temporary clock helpers Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-18 22:21 ` Sylwester Nawrocki 2013-03-18 22:21 ` Sylwester Nawrocki 2013-03-19 7:32 ` Guennadi Liakhovetski 2013-03-19 7:32 ` Guennadi Liakhovetski 2013-03-19 9:52 ` Sylwester Nawrocki 2013-03-19 9:52 ` Sylwester Nawrocki 2013-03-19 10:27 ` Guennadi Liakhovetski 2013-03-19 10:27 ` Guennadi Liakhovetski 2013-03-26 23:09 ` Laurent Pinchart 2013-03-26 23:09 ` Laurent Pinchart 2013-03-26 23:08 ` Laurent Pinchart 2013-03-26 23:08 ` Laurent Pinchart 2013-04-08 10:36 ` Guennadi Liakhovetski 2013-04-08 10:36 ` Guennadi Liakhovetski 2013-04-08 15:20 ` Sylwester Nawrocki 2013-04-08 15:20 ` Sylwester Nawrocki 2013-03-21 8:19 ` Prabhakar Lad 2013-03-21 8:31 ` Prabhakar Lad 2013-03-21 9:10 ` Anatolij Gustschin 2013-03-21 9:10 ` Anatolij Gustschin 2013-03-21 9:13 ` Prabhakar Lad 2013-03-21 9:25 ` Prabhakar Lad 2013-03-15 21:27 ` [PATCH v6 2/7] media: V4L2: support asynchronous subdevice registration Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-26 23:41 ` Laurent Pinchart 2013-03-26 23:41 ` Laurent Pinchart 2013-03-15 21:27 ` [PATCH v6 3/7] media: soc-camera: switch I2C subdevice drivers to use v4l2-clk Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-18 7:47 ` Hans Verkuil 2013-03-18 7:47 ` Hans Verkuil 2013-03-18 10:08 ` Guennadi Liakhovetski 2013-03-18 10:08 ` Guennadi Liakhovetski 2013-03-18 10:23 ` Hans Verkuil 2013-03-18 10:23 ` Hans Verkuil 2013-03-18 22:48 ` Sylwester Nawrocki 2013-03-18 22:48 ` Sylwester Nawrocki 2013-03-26 23:54 ` Laurent Pinchart 2013-03-26 23:54 ` Laurent Pinchart 2013-04-08 10:53 ` Guennadi Liakhovetski 2013-04-08 10:53 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 4/7] soc-camera: add V4L2-async support Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 5/7] sh_mobile_ceu_camera: add asynchronous subdevice probing support Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski [this message] 2013-03-15 21:27 ` [PATCH v6 6/7] imx074: support asynchronous probing Guennadi Liakhovetski 2013-03-15 21:27 ` [PATCH v6 7/7] ARM: shmobile: convert ap4evb to asynchronously register camera subdevices Guennadi Liakhovetski 2013-03-15 21:27 ` Guennadi Liakhovetski 2013-03-19 3:36 ` Simon Horman 2013-03-19 3:36 ` Simon Horman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1363382873-20077-7-git-send-email-g.liakhovetski@gmx.de \ --to=g.liakhovetski@gmx.de \ --cc=hverkuil@xs4all.nl \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-media@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=magnus.damm@gmail.com \ --cc=prabhakar.lad@ti.com \ --cc=s.nawrocki@samsung.com \ --cc=sakari.ailus@iki.fi \ --cc=sylvester.nawrocki@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.