Hi Isaac,
Thank you for the patch.
On Mon, Sep 15, 2025 at 02:18:35PM +0100, Isaac Scott wrote:
> The number of lanes actively used by a MIPI CSI transmitter may differ
> from that which is defined in device tree. As such, call on
> v4l2_get_active_data_lanes() to check if the driver reports a
> differing number of lanes to device tree, and use that number of active
> lanes.
It would be useful to explain there that the difference would be caused
by the source using less data lanes than the number of connected lanes
on the board.
> If the number of active data lanes is invalid, or the op is not
> supported, use the number of lanes defined in device tree.
Is this still true ?
> Signed-off-by: Isaac Scott <isaac.scott@ideasonboard.com>
> ---
> drivers/media/platform/nxp/imx-mipi-csis.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/media/platform/nxp/imx-mipi-csis.c b/drivers/media/platform/nxp/imx-mipi-csis.c
> index 6afbedfe131e..d3424ad54b4e 100644
> --- a/drivers/media/platform/nxp/imx-mipi-csis.c
> +++ b/drivers/media/platform/nxp/imx-mipi-csis.c
> @@ -967,6 +967,9 @@ static int mipi_csis_s_stream(struct v4l2_subdev *sd, int enable)
> format = v4l2_subdev_state_get_format(state, CSIS_PAD_SINK);
> csis_fmt = find_csis_format(format->code);
>
> + csis->num_data_lanes = v4l2_get_active_data_lanes(csis->source.pad,
> + csis->bus.num_data_lanes);
> +
If the function returns an error you'll have a problem.
> ret = mipi_csis_calculate_params(csis, csis_fmt);
> if (ret < 0)
> goto err_unlock;
--
Regards,
Laurent Pinchart