diff options
author | Sakari Ailus | 2018-07-23 09:09:28 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab | 2018-10-04 16:23:34 -0400 |
commit | edc6d56c2e7ef33ed7391b73806100a76762c012 (patch) | |
tree | bb44d440adec3531d87e58e71a10b698420c74f4 /drivers/media | |
parent | e7b2f5185e4cc44c11d01f0aac162837829b72f1 (diff) |
media: v4l: fwnode: Support parsing of CSI-2 C-PHY endpoints
The V4L2 fwnode framework only parsed CSI-2 D-PHY endpoints while C-PHY
support wasn't there. Also parse endpoints for media bus type
V4L2_MBUS_CSI2_CPHY.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/v4l2-core/v4l2-fwnode.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c index 6bbf02422a36..6300b599c73d 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c @@ -145,7 +145,8 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, u32 v; int rval; - if (bus_type == V4L2_MBUS_CSI2_DPHY) { + if (bus_type == V4L2_MBUS_CSI2_DPHY || + bus_type == V4L2_MBUS_CSI2_CPHY) { use_default_lane_mapping = true; num_data_lanes = min_t(u32, bus->num_data_lanes, @@ -221,10 +222,12 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, flags |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; } - if (bus_type == V4L2_MBUS_CSI2_DPHY || lanes_used || + if (bus_type == V4L2_MBUS_CSI2_DPHY || + bus_type == V4L2_MBUS_CSI2_CPHY || lanes_used || have_clk_lane || (flags & ~V4L2_MBUS_CSI2_CONTINUOUS_CLOCK)) { bus->flags = flags; - vep->bus_type = V4L2_MBUS_CSI2_DPHY; + if (bus_type == V4L2_MBUS_UNKNOWN) + vep->bus_type = V4L2_MBUS_CSI2_DPHY; bus->num_data_lanes = num_data_lanes; if (use_default_lane_mapping) { @@ -463,6 +466,7 @@ static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, break; case V4L2_MBUS_CSI2_DPHY: + case V4L2_MBUS_CSI2_CPHY: rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep, vep->bus_type); if (rval) |