media: v4l2-mediabus: Drop V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Wed, 5 Jan 2022 20:15:58 +0000 (21:15 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Thu, 17 Feb 2022 08:54:26 +0000 (09:54 +0100)
MIPI CSI-2 continuous and non-continuous clock modes are mutually
exclusive. Drop the V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag and use
V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK only.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/i2c/adv7180.c
drivers/media/i2c/tc358743.c
drivers/media/v4l2-core/v4l2-fwnode.c
include/media/v4l2-mediabus.h

index 3ff37a5..4f5db19 100644 (file)
@@ -785,8 +785,7 @@ static int adv7180_get_mbus_config(struct v4l2_subdev *sd,
        if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) {
                cfg->type = V4L2_MBUS_CSI2_DPHY;
                cfg->bus.mipi_csi2.num_data_lanes = 1;
-               cfg->bus.mipi_csi2.flags =
-                               V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
+               cfg->bus.mipi_csi2.flags = 0;
        } else {
                /*
                 * The ADV7180 sensor supports BT.601/656 output modes.
index dfbc426..e18b894 100644 (file)
@@ -717,7 +717,7 @@ static void tc358743_set_csi(struct v4l2_subdev *sd)
                        ((lanes > 3) ? MASK_D3M_HSTXVREGEN : 0x0));
 
        i2c_wr32(sd, TXOPTIONCNTRL, (state->bus.flags &
-                V4L2_MBUS_CSI2_CONTINUOUS_CLOCK) ? MASK_CONTCLKMODE : 0);
+                V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK) ? 0 : MASK_CONTCLKMODE);
        i2c_wr32(sd, STARTCNTRL, MASK_START);
        i2c_wr32(sd, CSI_START, MASK_STRT);
 
@@ -1613,7 +1613,7 @@ static int tc358743_get_mbus_config(struct v4l2_subdev *sd,
        cfg->type = V4L2_MBUS_CSI2_DPHY;
 
        /* Support for non-continuous CSI-2 clock is missing in the driver */
-       cfg->bus.mipi_csi2.flags = V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
+       cfg->bus.mipi_csi2.flags = 0;
        cfg->bus.mipi_csi2.num_data_lanes = state->csi_lanes_in_use;
 
        return 0;
@@ -2039,7 +2039,7 @@ static int tc358743_probe(struct i2c_client *client)
        /* platform data */
        if (pdata) {
                state->pdata = *pdata;
-               state->bus.flags = V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
+               state->bus.flags = 0;
        } else {
                err = tc358743_probe_of(state);
                if (err == -ENODEV)
index 9ff3ebb..71dcc9a 100644 (file)
@@ -207,13 +207,11 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode,
        if (fwnode_property_present(fwnode, "clock-noncontinuous")) {
                flags |= V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK;
                pr_debug("non-continuous clock\n");
-       } else {
-               flags |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
        }
 
        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_type == V4L2_MBUS_CSI2_CPHY ||
+           lanes_used || have_clk_lane || flags) {
                /* Only D-PHY has a clock lane. */
                unsigned int dfl_data_lane_index =
                        bus_type == V4L2_MBUS_CSI2_DPHY;
index c6626a2..e0db3bc 100644 (file)
@@ -68,8 +68,7 @@
 
 /* Serial flags */
 /* Clock non-continuous mode support. */
-#define V4L2_MBUS_CSI2_CONTINUOUS_CLOCK                BIT(8)
-#define V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK     BIT(9)
+#define V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK     BIT(0)
 
 #define V4L2_MBUS_CSI2_MAX_DATA_LANES          8