All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
To: Linux Media Mailing List <linux-media@vger.kernel.org>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
	Magnus Damm <magnus.damm@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Darius Augulis <augulis.darius@gmail.com>,
	Paul Mundt <lethal@linux-sh.org>
Subject: [PATCH 08/10 v2] v4l2-subdev: add a v4l2_i2c_subdev_board() function
Date: Fri, 15 May 2009 19:20:10 +0200 (CEST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0905151905440.4658@axis700.grange> (raw)
In-Reply-To: <Pine.LNX.4.64.0905151817070.4658@axis700.grange>

Introduce a function similar to v4l2_i2c_new_subdev() but taking a pointer to a
struct i2c_board_info as a parameter instead of a client type and an I2C
address, and make v4l2_i2c_new_subdev() a wrapper around it.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---

Hans, renamed as you requested and updated to a (more) current state.

 drivers/media/video/v4l2-common.c |   30 +++++++++++++++++++-----------
 include/media/v4l2-common.h       |    5 +++++
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
index f576ef6..ab190aa 100644
--- a/drivers/media/video/v4l2-common.c
+++ b/drivers/media/video/v4l2-common.c
@@ -758,30 +758,38 @@ void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client,
 }
 EXPORT_SYMBOL_GPL(v4l2_i2c_subdev_init);
 
-
-
 /* Load an i2c sub-device. */
 struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
 		struct i2c_adapter *adapter,
 		const char *module_name, const char *client_type, u8 addr)
 {
-	struct v4l2_subdev *sd = NULL;
-	struct i2c_client *client;
 	struct i2c_board_info info;
 
-	BUG_ON(!v4l2_dev);
-
-	if (module_name)
-		request_module(module_name);
-
 	/* Setup the i2c board info with the device type and
 	   the device address. */
 	memset(&info, 0, sizeof(info));
 	strlcpy(info.type, client_type, sizeof(info.type));
 	info.addr = addr;
 
+	return v4l2_i2c_subdev_board(v4l2_dev, adapter, module_name, &info);
+}
+EXPORT_SYMBOL_GPL(v4l2_i2c_new_subdev);
+
+/* Load an i2c sub-device using provided struct i2c_board_info. */
+struct v4l2_subdev *v4l2_i2c_subdev_board(struct v4l2_device *v4l2_dev,
+		struct i2c_adapter *adapter,
+		const char *module_name, const struct i2c_board_info *info)
+{
+	struct v4l2_subdev *sd = NULL;
+	struct i2c_client *client;
+
+	BUG_ON(!v4l2_dev);
+
+	if (module_name)
+		request_module(module_name);
+
 	/* Create the i2c client */
-	client = i2c_new_device(adapter, &info);
+	client = i2c_new_device(adapter, info);
 	/* Note: it is possible in the future that
 	   c->driver is NULL if the driver is still being loaded.
 	   We need better support from the kernel so that we
@@ -808,7 +816,7 @@ error:
 		i2c_unregister_device(client);
 	return sd;
 }
-EXPORT_SYMBOL_GPL(v4l2_i2c_new_subdev);
+EXPORT_SYMBOL_GPL(v4l2_i2c_subdev_board);
 
 /* Probe and load an i2c sub-device. */
 struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct v4l2_device *v4l2_dev,
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index c48c24e..a67f5c3 100644
--- a/include/media/v4l2-common.h
+++ b/include/media/v4l2-common.h
@@ -131,6 +131,7 @@ struct i2c_driver;
 struct i2c_adapter;
 struct i2c_client;
 struct i2c_device_id;
+struct i2c_board_info;
 struct v4l2_device;
 struct v4l2_subdev;
 struct v4l2_subdev_ops;
@@ -142,6 +143,10 @@ struct v4l2_subdev_ops;
 struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
 		struct i2c_adapter *adapter,
 		const char *module_name, const char *client_type, u8 addr);
+/* Same as above but uses user-provided struct i2c_board_info */
+struct v4l2_subdev *v4l2_i2c_subdev_board(struct v4l2_device *v4l2_dev,
+		struct i2c_adapter *adapter,
+		const char *module_name, const struct i2c_board_info *info);
 /* Probe and load an i2c module and return an initialized v4l2_subdev struct.
    Only call request_module if module_name != NULL.
    The client_type argument is the name of the chip that's on the adapter. */
-- 
1.6.2.4


  parent reply	other threads:[~2009-05-15 17:19 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-15 17:18 [PATCH 00/10 v2] soc-camera conversions Guennadi Liakhovetski
2009-05-15 17:18 ` [PATCH 01/10 v2] soc-camera: prepare soc_camera_platform.c and its users for conversion Guennadi Liakhovetski
2009-05-15 17:19 ` [PATCH 02/10 v2] ARM: convert pcm037 to the new platform-device soc-camera interface Guennadi Liakhovetski
2009-05-20  7:38   ` Sascha Hauer
2009-05-20  9:01     ` Guennadi Liakhovetski
2009-05-20 11:23       ` Sascha Hauer
2009-05-20 12:07         ` Guennadi Liakhovetski
2009-05-22 10:58     ` [PATCH] pcm037: add MT9T031 camera support Guennadi Liakhovetski
2009-05-15 17:19 ` [PATCH 03/10 v2] soc_camera_platform: pass device pointer from soc-camera core on .add_device() Guennadi Liakhovetski
2009-05-15 17:19 ` [PATCH 04/10 v2] soc-camera: convert to platform device Guennadi Liakhovetski
2009-05-15 17:19 ` [PATCH 05/10 v2] sh: soc-camera updates Guennadi Liakhovetski
2009-05-15 17:19 ` [PATCH 06/10 v2] soc-camera: remove unused .iface from struct soc_camera_platform_info Guennadi Liakhovetski
2009-05-15 17:20 ` [PATCH 07/10 v2] sh: prepare board-ap325rxa.c for v4l2-subdev conversion Guennadi Liakhovetski
2009-05-15 17:20 ` Guennadi Liakhovetski [this message]
2009-05-21 13:53   ` [PATCH 08/10 v2] v4l2-subdev: add a v4l2_i2c_subdev_board() function Hans Verkuil
2009-05-21 15:33     ` Guennadi Liakhovetski
2009-05-22  8:58       ` Eduardo Valentin
2009-05-22 10:45         ` [RFC] v4l2_subdev i2c: Add i2c board info to v4l2_i2c_new_subdev Eduardo Valentin
2009-05-22 11:55         ` [PATCH 08/10 v2] v4l2-subdev: add a v4l2_i2c_subdev_board() function Hans Verkuil
2009-05-22 12:16           ` Guennadi Liakhovetski
2009-05-22 12:58             ` Hans Verkuil
2009-05-22 13:14               ` Eduardo Valentin
2009-05-25 10:18                 ` Eduardo Valentin
2009-05-25 10:37                   ` [PATCH 1/1] v4l2_subdev i2c: Add v4l2_i2c_new_subdev_board i2c helper function Eduardo Valentin
2009-05-15 17:20 ` [RFC 09/10 v2] v4l2-subdev: re-add s_standby to v4l2_subdev_core_ops Guennadi Liakhovetski
2009-05-21 13:33   ` Hans Verkuil
2009-05-22 14:23     ` Guennadi Liakhovetski
2009-05-22 14:30       ` Hans Verkuil
2009-05-22 16:44       ` Robert Jarzmik
2009-05-22 17:37         ` Guennadi Liakhovetski
2009-05-23 11:49           ` Robert Jarzmik
2009-05-23 15:17             ` Guennadi Liakhovetski
2009-05-15 17:20 ` [PATCH/RFC 10/10 v2] soc-camera: (partially) convert to v4l2-(sub)dev API Guennadi Liakhovetski
2009-05-15 17:31 ` [PATCH 00/10 v2] soc-camera conversions Guennadi Liakhovetski
2009-05-19  3:05 ` Paul Mundt
2009-06-08 19:19   ` Guennadi Liakhovetski
2009-06-09 13:26     ` Paul Mundt

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=Pine.LNX.4.64.0905151905440.4658@axis700.grange \
    --to=g.liakhovetski@gmx.de \
    --cc=augulis.darius@gmail.com \
    --cc=hverkuil@xs4all.nl \
    --cc=lethal@linux-sh.org \
    --cc=linux-media@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=robert.jarzmik@free.fr \
    /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: link
Be 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.