From: Sakari Ailus <sakari.ailus@linux.intel.com> To: linux-media@vger.kernel.org Cc: devicetree@vger.kernel.org, jacopo@jmondi.org, dri-devel@lists.freedesktop.org, slongerbeam@gmail.com, niklas.soderlund@ragnatech.se Subject: [PATCH v3 20/23] v4l: fwnode: Use V4L2 fwnode endpoint media bus type if set Date: Thu, 13 Sep 2018 00:29:39 +0300 [thread overview] Message-ID: <20180912212942.19641-21-sakari.ailus@linux.intel.com> (raw) In-Reply-To: <20180912212942.19641-1-sakari.ailus@linux.intel.com> Use the given media bus type set by the caller. If none is given (i.e. the mbus type is V4L2_MBUS_UNKNOWN, or 0), fall back to the old behaviour. This is to obtain the information from the DT or try to guess the bus type. -ENXIO is returned if the caller sets the bus type but that does not match with what's in DT. Also return -ENXIO if bus type detection failed to separate this from the rest of the errors. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Tested-by: Steve Longerbeam <steve_longerbeam@mentor.com> --- drivers/media/v4l2-core/v4l2-fwnode.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c index 48fb90660c6b..e3780fe624bd 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c @@ -409,7 +409,7 @@ v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode, static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, struct v4l2_fwnode_endpoint *vep) { - u32 bus_type = 0; + u32 bus_type = V4L2_FWNODE_BUS_TYPE_GUESS; enum v4l2_mbus_type mbus_type; int rval; @@ -432,13 +432,24 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, v4l2_fwnode_bus_type_to_string(bus_type), bus_type, v4l2_fwnode_mbus_type_to_string(vep->bus_type), vep->bus_type); - mbus_type = v4l2_fwnode_bus_type_to_mbus(bus_type); - switch (mbus_type) { + if (vep->bus_type != V4L2_MBUS_UNKNOWN) { + if (mbus_type != V4L2_MBUS_UNKNOWN && + vep->bus_type != mbus_type) { + pr_debug("expecting bus type %s\n", + v4l2_fwnode_mbus_type_to_string( + vep->bus_type)); + return -ENXIO; + } + } else { + vep->bus_type = mbus_type; + } + + switch (vep->bus_type) { case V4L2_MBUS_UNKNOWN: rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, - mbus_type); + V4L2_MBUS_UNKNOWN); if (rval) return rval; @@ -453,20 +464,20 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, break; case V4L2_MBUS_CCP2: case V4L2_MBUS_CSI1: - v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, mbus_type); + v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, vep->bus_type); break; case V4L2_MBUS_CSI2_DPHY: - vep->bus_type = V4L2_MBUS_CSI2_DPHY; rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, - mbus_type); + vep->bus_type); if (rval) return rval; break; case V4L2_MBUS_PARALLEL: case V4L2_MBUS_BT656: - v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, mbus_type); + v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, + vep->bus_type); break; default: -- 2.11.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
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, p.zabel@pengutronix.de, dri-devel@lists.freedesktop.org Subject: [PATCH v3 20/23] v4l: fwnode: Use V4L2 fwnode endpoint media bus type if set Date: Thu, 13 Sep 2018 00:29:39 +0300 [thread overview] Message-ID: <20180912212942.19641-21-sakari.ailus@linux.intel.com> (raw) In-Reply-To: <20180912212942.19641-1-sakari.ailus@linux.intel.com> Use the given media bus type set by the caller. If none is given (i.e. the mbus type is V4L2_MBUS_UNKNOWN, or 0), fall back to the old behaviour. This is to obtain the information from the DT or try to guess the bus type. -ENXIO is returned if the caller sets the bus type but that does not match with what's in DT. Also return -ENXIO if bus type detection failed to separate this from the rest of the errors. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Tested-by: Steve Longerbeam <steve_longerbeam@mentor.com> --- drivers/media/v4l2-core/v4l2-fwnode.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c index 48fb90660c6b..e3780fe624bd 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c @@ -409,7 +409,7 @@ v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode, static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, struct v4l2_fwnode_endpoint *vep) { - u32 bus_type = 0; + u32 bus_type = V4L2_FWNODE_BUS_TYPE_GUESS; enum v4l2_mbus_type mbus_type; int rval; @@ -432,13 +432,24 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, v4l2_fwnode_bus_type_to_string(bus_type), bus_type, v4l2_fwnode_mbus_type_to_string(vep->bus_type), vep->bus_type); - mbus_type = v4l2_fwnode_bus_type_to_mbus(bus_type); - switch (mbus_type) { + if (vep->bus_type != V4L2_MBUS_UNKNOWN) { + if (mbus_type != V4L2_MBUS_UNKNOWN && + vep->bus_type != mbus_type) { + pr_debug("expecting bus type %s\n", + v4l2_fwnode_mbus_type_to_string( + vep->bus_type)); + return -ENXIO; + } + } else { + vep->bus_type = mbus_type; + } + + switch (vep->bus_type) { case V4L2_MBUS_UNKNOWN: rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, - mbus_type); + V4L2_MBUS_UNKNOWN); if (rval) return rval; @@ -453,20 +464,20 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, break; case V4L2_MBUS_CCP2: case V4L2_MBUS_CSI1: - v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, mbus_type); + v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, vep->bus_type); break; case V4L2_MBUS_CSI2_DPHY: - vep->bus_type = V4L2_MBUS_CSI2_DPHY; rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, - mbus_type); + vep->bus_type); if (rval) return rval; break; case V4L2_MBUS_PARALLEL: case V4L2_MBUS_BT656: - v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, mbus_type); + v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep, + vep->bus_type); break; default: -- 2.11.0
next prev parent reply other threads:[~2018-09-12 21:29 UTC|newest] Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-12 21:29 [PATCH v3 00/23] V4L2 fwnode rework; support for default configuration Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 01/23] v4l: fwnode: Add debug prints for V4L2 endpoint property parsing Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 02/23] v4l: fwnode: Use fwnode_graph_for_each_endpoint Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 03/23] v4l: fwnode: The CSI-2 clock is continuous if it's not non-continuous Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 04/23] dt-bindings: media: Specify bus type for MIPI D-PHY, others, explicitly Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 05/23] v4l: fwnode: Add definitions for CSI-2 D-PHY, parallel and Bt.656 busses Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 06/23] v4l: mediabus: Recognise CSI-2 D-PHY and C-PHY Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 07/23] v4l: fwnode: Let the caller provide V4L2 fwnode endpoint Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 08/23] v4l: fwnode: Detect bus type correctly Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 09/23] v4l: fwnode: Make use of newly specified bus types Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-13 9:14 ` jacopo mondi 2018-09-13 9:14 ` jacopo mondi 2018-09-13 9:43 ` [PATCH v3.1 " Sakari Ailus 2018-09-13 9:43 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 10/23] v4l: fwnode: Read lane inversion information despite lane numbering Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 11/23] v4l: fwnode: Only assign configuration if there is no error Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 12/23] v4l: fwnode: Support driver-defined lane mapping defaults Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 13/23] v4l: fwnode: Support default CSI-2 lane mapping for drivers Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 14/23] v4l: fwnode: Parse the graph endpoint as last Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 15/23] v4l: fwnode: Use default parallel flags Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-13 9:17 ` jacopo mondi 2018-09-13 9:17 ` jacopo mondi 2018-09-12 21:29 ` [PATCH v3 16/23] v4l: fwnode: Initialise the V4L2 fwnode endpoints to zero Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-13 9:46 ` jacopo mondi 2018-09-13 9:46 ` jacopo mondi 2018-09-13 9:55 ` Sakari Ailus 2018-09-13 9:55 ` Sakari Ailus 2018-09-13 10:19 ` Sakari Ailus 2018-09-13 10:19 ` Sakari Ailus 2018-09-13 13:19 ` jacopo mondi 2018-09-13 13:19 ` jacopo mondi 2018-09-12 21:29 ` [PATCH v3 17/23] v4l: fwnode: Only zero the struct if bus type is set to V4L2_MBUS_UNKNOWN Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 18/23] v4l: fwnode: Use media bus type for bus parser selection Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 19/23] v4l: fwnode: Print bus type Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus [this message] 2018-09-12 21:29 ` [PATCH v3 20/23] v4l: fwnode: Use V4L2 fwnode endpoint media bus type if set Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 21/23] v4l: fwnode: Support parsing of CSI-2 C-PHY endpoints Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 22/23] v4l: fwnode: Update V4L2 fwnode endpoint parsing documentation Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-12 21:29 ` [PATCH v3 23/23] smiapp: Query the V4L2 endpoint for a specific bus type Sakari Ailus 2018-09-12 21:29 ` Sakari Ailus 2018-09-13 9:54 ` [PATCH v3 00/23] V4L2 fwnode rework; support for default configuration jacopo mondi 2018-09-13 9:54 ` jacopo mondi 2018-09-13 10:00 ` Sakari Ailus 2018-09-13 10:00 ` 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=20180912212942.19641-21-sakari.ailus@linux.intel.com \ --to=sakari.ailus@linux.intel.com \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.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: 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.