OSDN Git Service

media: imx: imx7_mipi_csis: Reject invalid data-lanes settings
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 13 Apr 2021 02:30:12 +0000 (04:30 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sun, 23 May 2021 17:21:33 +0000 (19:21 +0200)
The CSIS doesn't support data lanes reordering. Reject invalid settings.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Rui Miguel Silva <rmfrfs@gmail.com>
Tested-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/imx/imx7-mipi-csis.c

index a1eaccc..14ff785 100644 (file)
@@ -1114,6 +1114,7 @@ static int mipi_csis_async_register(struct csi_state *state)
        };
        struct v4l2_async_subdev *asd;
        struct fwnode_handle *ep;
+       unsigned int i;
        int ret;
 
        v4l2_async_notifier_init(&state->notifier);
@@ -1127,6 +1128,14 @@ static int mipi_csis_async_register(struct csi_state *state)
        if (ret)
                goto err_parse;
 
+       for (i = 0; i < vep.bus.mipi_csi2.num_data_lanes; ++i) {
+               if (vep.bus.mipi_csi2.data_lanes[i] != i + 1) {
+                       dev_err(state->dev,
+                               "data lanes reordering is not supported");
+                       goto err_parse;
+               }
+       }
+
        state->bus = vep.bus.mipi_csi2;
 
        dev_dbg(state->dev, "data lanes: %d\n", state->bus.num_data_lanes);