Message ID | 20200913184247.618-3-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Kieran Bingham |
Headers | show |
Series | media: i2c: ov772x: Enable BT656 mode and test pattern support | expand |
Hello! On 13.09.2020 21:42, Lad Prabhakar wrote: > Add support to read the bus-type for V4L2_MBUS_BT656 and > enable BT656 mode in the sensor if needed. Isn't it called BT.656? > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > drivers/media/i2c/ov772x.c | 27 +++++++++++++++++++++------ > 1 file changed, 21 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/i2c/ov772x.c b/drivers/media/i2c/ov772x.c > index 551082aa7026..edd7c4c22225 100644 > --- a/drivers/media/i2c/ov772x.c > +++ b/drivers/media/i2c/ov772x.c [...] > @@ -1427,16 +1434,24 @@ static int ov772x_probe(struct i2c_client *client) > goto error_clk_put; > } > > - bus_cfg.bus_type = V4L2_MBUS_PARALLEL; > + bus_cfg = (struct v4l2_fwnode_endpoint) > + { .bus_type = V4L2_MBUS_BT656 }; > ret = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg); > priv->bus_type = bus_cfg.bus_type; > v4l2_fwnode_endpoint_free(&bus_cfg); > if (ret) { > - /* For backward compatibility with the existing DT where > - * bus-type isnt specified fallback to V4L2_MBUS_PARALLEL > - */ > - priv->bus_type = V4L2_MBUS_PARALLEL; > - dev_notice(&client->dev, "Falling back to V4L2_MBUS_PARALLEL mode\n"); > + bus_cfg.bus_type = V4L2_MBUS_PARALLEL; > + ret = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg); > + priv->bus_type = bus_cfg.bus_type; > + v4l2_fwnode_endpoint_free(&bus_cfg); > + if (ret) { > + /* For backward compatibility with the existing DT where > + * bus-type isnt specified fallback to V4L2_MBUS_PARALLEL ^^^^ isn't Could be fixed, while at it? > + */ > + priv->bus_type = V4L2_MBUS_PARALLEL; > + dev_notice(&client->dev, > + "Falling back to V4L2_MBUS_PARALLEL mode\n"); > + } > } > > ret = ov772x_video_probe(priv); MBR, Sergei
diff --git a/drivers/media/i2c/ov772x.c b/drivers/media/i2c/ov772x.c index 551082aa7026..edd7c4c22225 100644 --- a/drivers/media/i2c/ov772x.c +++ b/drivers/media/i2c/ov772x.c @@ -583,6 +583,13 @@ static int ov772x_s_stream(struct v4l2_subdev *sd, int enable) if (priv->streaming == enable) goto done; + if (priv->bus_type == V4L2_MBUS_BT656) { + ret = regmap_update_bits(priv->regmap, COM7, ITU656_ON_OFF, + enable ? ITU656_ON_OFF : ~ITU656_ON_OFF); + if (ret) + goto done; + } + ret = regmap_update_bits(priv->regmap, COM2, SOFT_SLEEP_MODE, enable ? 0 : SOFT_SLEEP_MODE); if (ret) @@ -1427,16 +1434,24 @@ static int ov772x_probe(struct i2c_client *client) goto error_clk_put; } - bus_cfg.bus_type = V4L2_MBUS_PARALLEL; + bus_cfg = (struct v4l2_fwnode_endpoint) + { .bus_type = V4L2_MBUS_BT656 }; ret = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg); priv->bus_type = bus_cfg.bus_type; v4l2_fwnode_endpoint_free(&bus_cfg); if (ret) { - /* For backward compatibility with the existing DT where - * bus-type isnt specified fallback to V4L2_MBUS_PARALLEL - */ - priv->bus_type = V4L2_MBUS_PARALLEL; - dev_notice(&client->dev, "Falling back to V4L2_MBUS_PARALLEL mode\n"); + bus_cfg.bus_type = V4L2_MBUS_PARALLEL; + ret = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg); + priv->bus_type = bus_cfg.bus_type; + v4l2_fwnode_endpoint_free(&bus_cfg); + if (ret) { + /* For backward compatibility with the existing DT where + * bus-type isnt specified fallback to V4L2_MBUS_PARALLEL + */ + priv->bus_type = V4L2_MBUS_PARALLEL; + dev_notice(&client->dev, + "Falling back to V4L2_MBUS_PARALLEL mode\n"); + } } ret = ov772x_video_probe(priv);