All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: niklas.soderlund@ragnatech.se, laurent.pinchart@ideasonboard.com
Subject: [RFC v1.1 2/8] v4l2-async: Add v4l2_async_notifier_add_fwnode_remote_subdev
Date: Tue, 19 Mar 2019 15:00:52 +0200	[thread overview]
Message-ID: <20190319130052.1620-1-sakari.ailus@linux.intel.com> (raw)
In-Reply-To: <20190318191653.7197-3-sakari.ailus@linux.intel.com>

v4l2_async_notifier_add_fwnode_remote_subdev is a convenience function for
parsing information on V4L2 fwnode subdevs.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
since RFC v1:

- Fix documentation for v4l2_async_notifier_add_fwnode_remote_subdev.

 drivers/media/v4l2-core/v4l2-async.c | 23 +++++++++++++++++++++++
 include/media/v4l2-async.h           | 23 +++++++++++++++++++++++
 2 files changed, 46 insertions(+)

diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
index 4cb49d5f8c03..9c1937d6ce17 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -608,6 +608,29 @@ v4l2_async_notifier_add_fwnode_subdev(struct v4l2_async_notifier *notifier,
 }
 EXPORT_SYMBOL_GPL(v4l2_async_notifier_add_fwnode_subdev);
 
+int
+v4l2_async_notifier_add_fwnode_remote_subdev(struct v4l2_async_notifier *notif,
+					     struct fwnode_handle *endpoint,
+					     struct v4l2_async_subdev *asd)
+{
+	struct fwnode_handle *remote_ep;
+	int ret;
+
+	remote_ep = fwnode_graph_get_remote_endpoint(endpoint);
+	if (!remote_ep)
+		return -ENOTCONN;
+
+	asd->match_type = V4L2_ASYNC_MATCH_FWNODE;
+	asd->match.fwnode = remote_ep;
+
+	ret = v4l2_async_notifier_add_subdev(notif, asd);
+	if (ret)
+		fwnode_handle_put(remote_ep);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(v4l2_async_notifier_add_fwnode_remote_subdev);
+
 struct v4l2_async_subdev *
 v4l2_async_notifier_add_i2c_subdev(struct v4l2_async_notifier *notifier,
 				   int adapter_id, unsigned short address,
diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h
index 1497bda66c3b..b0c50d125ee5 100644
--- a/include/media/v4l2-async.h
+++ b/include/media/v4l2-async.h
@@ -184,6 +184,29 @@ v4l2_async_notifier_add_fwnode_subdev(struct v4l2_async_notifier *notifier,
 				      unsigned int asd_struct_size);
 
 /**
+ * v4l2_async_notifier_add_fwnode_remote_subdev - Allocate and add a fwnode
+ *						  remote async subdev to the
+ *						  notifier's master asd_list.
+ *
+ * @notif: pointer to &struct v4l2_async_notifier
+ * @endpoint: local endpoint the remote sub-device to be matched
+ * @asd: Async sub-device struct allocated by the caller. The &struct
+ *	 v4l2_async_subdev shall be the first member of the driver's async
+ *	 sub-device struct, i.e. both begin at the same memory address.
+ *
+ * Gets the remote endpoint of a given local endpoint, set it up for fwnode
+ * matching and add the async sub-device to the notifier's @asd_list.
+ *
+ * This is just like @v4l2_async_notifier_add_fwnode_subdev, but with the
+ * exception that the fwnode refers to a local endpoint, not the remote one, and
+ * the function relies on the caller to allocate the async sub-device struct.
+ */
+int
+v4l2_async_notifier_add_fwnode_remote_subdev(struct v4l2_async_notifier *notif,
+					     struct fwnode_handle *endpoint,
+					     struct v4l2_async_subdev *asd);
+
+/**
  * v4l2_async_notifier_add_i2c_subdev - Allocate and add an i2c async
  *				subdev to the notifier's master asd_list.
  *
-- 
2.11.0


  reply	other threads:[~2019-03-19 13:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-18 19:16 [RFC 0/8] Rework V4L2 fwnode parsing; add defaults and avoid iteration Sakari Ailus
2019-03-18 19:16 ` [RFC 1/8] v4l2-async: Use endpoint node, not device node, for fwnode match Sakari Ailus
2019-03-19 13:02   ` [RFC v1.1 " Sakari Ailus
2019-03-20 15:23     ` Niklas Söderlund
2019-04-04 13:37   ` [RFC " Hans Verkuil
2019-04-04 21:50     ` Sakari Ailus
2019-03-18 19:16 ` [RFC 2/8] v4l2-async: Add v4l2_async_notifier_add_fwnode_remote_subdev Sakari Ailus
2019-03-19 13:00   ` Sakari Ailus [this message]
2019-04-04 13:39   ` Hans Verkuil
2019-04-04 23:04     ` Sakari Ailus
2019-03-18 19:16 ` [RFC 3/8] v4l2-fwnode: Use v4l2_async_notifier_add_fwnode_remote_subdev Sakari Ailus
2019-03-20 16:10   ` Niklas Söderlund
2019-03-18 19:16 ` [RFC 4/8] omap3isp: Rework OF endpoint parsing Sakari Ailus
2019-04-04 13:43   ` Hans Verkuil
2019-04-05  0:22     ` Sakari Ailus
2019-03-18 19:16 ` [RFC 5/8] v4l2-async: Safely clean up an uninitialised notifier Sakari Ailus
2019-03-18 19:16 ` [RFC 6/8] ipu3-cio2: Clean up notifier's subdev list if parsing endpoints fails Sakari Ailus
2019-03-18 19:16 ` [RFC 7/8] ipu3-cio2: Proceed with notifier init even if there are no subdevs Sakari Ailus
2019-03-18 19:16 ` [RFC 8/8] ipu3-cio2: Parse information from firmware without using callbacks Sakari Ailus

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=20190319130052.1620-1-sakari.ailus@linux.intel.com \
    --to=sakari.ailus@linux.intel.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    /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.