From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: devicetree@vger.kernel.org, slongerbeam@gmail.com,
niklas.soderlund@ragnatech.se, jacopo@jmondi.org
Subject: [PATCH v2 22/23] v4l: fwnode: Update V4L2 fwnode endpoint parsing documentation
Date: Mon, 27 Aug 2018 12:29:59 +0300 [thread overview]
Message-ID: <20180827093000.29165-23-sakari.ailus@linux.intel.com> (raw)
In-Reply-To: <20180827093000.29165-1-sakari.ailus@linux.intel.com>
The semantics of v4l2_fwnode_endpoint_parse() and
v4l2_fwnode_endpoint_alloc_parse() have changed slightly: they now take
the bus type from the user as well as a default configuration for the bus
that shall reflect the DT binding defaults. Document this.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
include/media/v4l2-fwnode.h | 56 ++++++++++++++++++++++++++++++---------------
1 file changed, 37 insertions(+), 19 deletions(-)
diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h
index 1ea1a3ecf6d5..b4a49ca27579 100644
--- a/include/media/v4l2-fwnode.h
+++ b/include/media/v4l2-fwnode.h
@@ -131,21 +131,30 @@ struct v4l2_fwnode_link {
* @fwnode: pointer to the endpoint's fwnode handle
* @vep: pointer to the V4L2 fwnode data structure
*
- * All properties are optional. If none are found, we don't set any flags. This
- * means the port has a static configuration and no properties have to be
- * specified explicitly. If any properties that identify the bus as parallel
- * are found and slave-mode isn't set, we set V4L2_MBUS_MASTER. Similarly, if
- * we recognise the bus as serial CSI-2 and clock-noncontinuous isn't set, we
- * set the V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag. The caller should hold a
- * reference to @fwnode.
- *
- * The caller must set the bus_type field of @vep to zero.
+ * This function parses the V4L2 fwnode endpoint specific parameters from the
+ * firmware. The caller is responsible for assigning @vep.bus_type to a valid
+ * media bus type. The caller may also set the default configuration for the
+ * endpoint --- a configuration that shall be in line with the DT binding
+ * documentation. Should a device support multiple bus types, the caller may
+ * call this function once the correct type is found --- with a default
+ * configuration valid for that type.
+ *
+ * As a compatibility means guessing the bus type is also supported by setting
+ * @vep.bus_type to V4L2_MBUS_UNKNOWN. The caller may not provide a default
+ * configuration in this case as the defaults are specific to a given bus type.
+ * This functionality is deprecated and should not be used in new drivers and it
+ * is only supported for CSI-2 D-PHY, parallel and Bt.656 busses.
+ *
+ * The function does not change the V4L2 fwnode endpoint state if it fails.
*
* NOTE: This function does not parse properties the size of which is variable
* without a low fixed limit. Please use v4l2_fwnode_endpoint_alloc_parse() in
* new drivers instead.
*
- * Return: 0 on success or a negative error code on failure.
+ * Return: %0 on success or a negative error code on failure:
+ * %-ENOMEM on memory allocation failure
+ * %-EINVAL on parsing failure
+ * %-ENXIO on mismatching bus types
*/
int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
struct v4l2_fwnode_endpoint *vep);
@@ -165,15 +174,21 @@ void v4l2_fwnode_endpoint_free(struct v4l2_fwnode_endpoint *vep);
* @fwnode: pointer to the endpoint's fwnode handle
* @vep: pointer to the V4L2 fwnode data structure
*
- * All properties are optional. If none are found, we don't set any flags. This
- * means the port has a static configuration and no properties have to be
- * specified explicitly. If any properties that identify the bus as parallel
- * are found and slave-mode isn't set, we set V4L2_MBUS_MASTER. Similarly, if
- * we recognise the bus as serial CSI-2 and clock-noncontinuous isn't set, we
- * set the V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag. The caller should hold a
- * reference to @fwnode.
+ * This function parses the V4L2 fwnode endpoint specific parameters from the
+ * firmware. The caller is responsible for assigning @vep.bus_type to a valid
+ * media bus type. The caller may also set the default configuration for the
+ * endpoint --- a configuration that shall be in line with the DT binding
+ * documentation. Should a device support multiple bus types, the caller may
+ * call this function once the correct type is found --- with a default
+ * configuration valid for that type.
+ *
+ * As a compatibility means guessing the bus type is also supported by setting
+ * @vep.bus_type to V4L2_MBUS_UNKNOWN. The caller may not provide a default
+ * configuration in this case as the defaults are specific to a given bus type.
+ * This functionality is deprecated and should not be used in new drivers and it
+ * is only supported for CSI-2 D-PHY, parallel and Bt.656 busses.
*
- * The caller must set the bus_type field of @vep to zero.
+ * The function does not change the V4L2 fwnode endpoint state if it fails.
*
* v4l2_fwnode_endpoint_alloc_parse() has two important differences to
* v4l2_fwnode_endpoint_parse():
@@ -183,7 +198,10 @@ void v4l2_fwnode_endpoint_free(struct v4l2_fwnode_endpoint *vep);
* 2. The memory it has allocated to store the variable size data must be freed
* using v4l2_fwnode_endpoint_free() when no longer needed.
*
- * Return: 0 on success or a negative error code on failure.
+ * Return: %0 on success or a negative error code on failure:
+ * %-ENOMEM on memory allocation failure
+ * %-EINVAL on parsing failure
+ * %-ENXIO on mismatching bus types
*/
int v4l2_fwnode_endpoint_alloc_parse(
struct fwnode_handle *fwnode, struct v4l2_fwnode_endpoint *vep);
--
2.11.0
next prev parent reply other threads:[~2018-08-27 13:15 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-27 9:29 [PATCH v2 00/23] V4L2 fwnode rework; support for default configuration Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 01/23] v4l: fwnode: Add debug prints for V4L2 endpoint property parsing Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 02/23] v4l: fwnode: Use fwnode_graph_for_each_endpoint Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 03/23] v4l: fwnode: The CSI-2 clock is continuous if it's not non-continuous Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 04/23] dt-bindings: media: Specify bus type for MIPI D-PHY, others, explicitly Sakari Ailus
2018-08-29 0:45 ` Rob Herring
2018-08-27 9:29 ` [PATCH v2 05/23] v4l: fwnode: Add definitions for CSI-2 D-PHY, parallel and Bt.656 busses Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 06/23] v4l: mediabus: Recognise CSI-2 D-PHY and C-PHY Sakari Ailus
2018-08-31 8:02 ` [PATCH v2.1 " Sakari Ailus
2018-08-31 8:02 ` Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 07/23] v4l: fwnode: Let the caller provide V4L2 fwnode endpoint Sakari Ailus
2018-09-12 14:51 ` jacopo mondi
2018-09-12 20:46 ` Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 08/23] v4l: fwnode: Detect bus type correctly Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 09/23] v4l: fwnode: Make use of newly specified bus types Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 10/23] v4l: fwnode: Read lane inversion information despite lane numbering Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 11/23] v4l: fwnode: Only assign configuration if there is no error Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 12/23] v4l: fwnode: Support driver-defined lane mapping defaults Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 13/23] v4l: fwnode: Support default CSI-2 lane mapping for drivers Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 14/23] v4l: fwnode: Parse the graph endpoint as last Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 15/23] v4l: fwnode: Use default parallel flags Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 16/23] v4l: fwnode: Initialise the V4L2 fwnode endpoints to zero Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 17/23] v4l: fwnode: Only zero the struct if bus type is set to V4L2_MBUS_UNKNOWN Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 18/23] v4l: fwnode: Use media bus type for bus parser selection Sakari Ailus
2018-09-12 15:15 ` jacopo mondi
2018-09-12 20:53 ` Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 19/23] v4l: fwnode: Print bus type Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 20/23] v4l: fwnode: Use V4L2 fwnode endpoint media bus type if set Sakari Ailus
2018-08-27 9:29 ` [PATCH v2 21/23] v4l: fwnode: Support parsing of CSI-2 C-PHY endpoints Sakari Ailus
2018-08-27 9:29 ` Sakari Ailus [this message]
2018-08-27 9:30 ` [PATCH v2 23/23] smiapp: Query the V4L2 endpoint for a specific bus type Sakari Ailus
2018-08-29 0:53 ` [PATCH v2 00/23] V4L2 fwnode rework; support for default configuration Steve Longerbeam
2018-08-29 0:53 ` Steve Longerbeam
2018-08-29 12:52 ` Sakari Ailus
2018-08-29 12:52 ` 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=20180827093000.29165-23-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=devicetree@vger.kernel.org \
--cc=jacopo@jmondi.org \
--cc=linux-media@vger.kernel.org \
--cc=niklas.soderlund@ragnatech.se \
--cc=slongerbeam@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: 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.