[PATCH v3 3/3] media: imx-mipi-csis: Get number of active lanes via mbus_config

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Sep 22 01:09:35 PDT 2025


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 at 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



More information about the linux-arm-kernel mailing list