]> Gentwo Git Trees - linux/.git/commitdiff
media: imx-mipi-csis: Support active data lanes differing from maximum
authorIsaac Scott <isaac.scott@ideasonboard.com>
Wed, 29 Oct 2025 18:03:21 +0000 (18:03 +0000)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Thu, 13 Nov 2025 09:57:52 +0000 (10:57 +0100)
Call on v4l2_get_active_data_lanes() to check if the driver reports that
the number of lanes actively used by the MIPI CSI transmitter differs to
the maximum defined in device tree.

If the number of active data lanes reported by the driver is invalid,
catch and return the error. If the operation is not supported, fall back
to the number of allowed data lanes.

Signed-off-by: Isaac Scott <isaac.scott@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/platform/nxp/imx-mipi-csis.c

index 1569299be4ec16924cfb089a5fe6b907b308caab..088b2945aee33731c565f049dd17721356300b84 100644 (file)
@@ -1034,6 +1034,12 @@ 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);
 
+       ret = v4l2_get_active_data_lanes(csis->source.pad, csis->bus.num_data_lanes);
+       if (ret < 0)
+               goto err_unlock;
+
+       csis->num_data_lanes = ret;
+
        ret = mipi_csis_calculate_params(csis, csis_fmt);
        if (ret < 0)
                goto err_unlock;