forked from Minki/linux
media: v4l2-mediabus: Drop V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag
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>
This commit is contained in:
parent
5a6ac3f4b4
commit
b9f7caa775
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user