[PATCH v4 4/4] media: imx-mipi-csis: Get number of active lanes via mbus_config
Isaac Scott
isaac.scott at ideasonboard.com
Thu Sep 25 08:54:29 PDT 2025
The number of lanes actively used by a MIPI CSI transmitter may differ
from that which is defined in device tree, due to the source device not
using all of the connected data lanes on the board. As such, call on
v4l2_get_active_data_lanes() to check if the driver reports a differing
number of lanes to the maximum, and use that number of active lanes.
If the number of active data lanes is invalid, or the op is not
supported, use the maximum number of allowed data lanes.
Signed-off-by: Isaac Scott <isaac.scott at ideasonboard.com>
---
drivers/media/platform/nxp/imx-mipi-csis.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/media/platform/nxp/imx-mipi-csis.c b/drivers/media/platform/nxp/imx-mipi-csis.c
index 838a1ad123b5..637ef6e614fa 100644
--- a/drivers/media/platform/nxp/imx-mipi-csis.c
+++ b/drivers/media/platform/nxp/imx-mipi-csis.c
@@ -1034,6 +1034,10 @@ 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);
+ csis->num_data_lanes = ret < 0 ? csis->bus.num_data_lanes : ret;
+
ret = mipi_csis_calculate_params(csis, csis_fmt);
if (ret < 0)
goto err_unlock;
--
2.43.0
More information about the linux-arm-kernel
mailing list