The IMX355 sensor driver currently supports having 4 data lanes. There
can't be more or less, so check if the firmware specifies 4 lanes.

Existing ACPI hardware descriptions may not have the data lanes defined
so this check also accepts a placeholder of 0 lanes.

Suggested-by: Sakari Ailus <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Richard Acayan <[email protected]>
---
 drivers/media/i2c/imx355.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/media/i2c/imx355.c b/drivers/media/i2c/imx355.c
index 9ca87488c933..0d6aabea7d59 100644
--- a/drivers/media/i2c/imx355.c
+++ b/drivers/media/i2c/imx355.c
@@ -66,6 +66,9 @@
 #define IMX355_EXT_CLK                 19200000
 #define IMX355_LINK_FREQ_INDEX         0
 
+/* number of data lanes */
+#define IMX355_DATA_LANES              4
+
 struct imx355_reg {
        u16 address;
        u8 val;
@@ -1705,6 +1708,10 @@ static struct imx355_hwcfg *imx355_get_hwcfg(struct 
device *dev)
        if (!cfg)
                goto out_err;
 
+       if (bus_cfg.bus.mipi_csi2.num_data_lanes != 0
+        && bus_cfg.bus.mipi_csi2.num_data_lanes != IMX355_DATA_LANES)
+               goto out_err;
+
        ret = v4l2_link_freq_to_bitmap(dev, bus_cfg.link_frequencies,
                                       bus_cfg.nr_of_link_frequencies,
                                       link_freq_menu_items,
-- 
2.53.0


Reply via email to