MXSFB error: -ENODEV: Cannot connect bridge

From: Hiago De Franco
Date: Thu Feb 08 2024 - 10:59:21 EST


Hello all,

while doing some tests with kernel v6.8-rc3 and Colibri iMX7D, we
noticed the following error:

[ 0.432547] mxsfb 30730000.lcdif: error -ENODEV: Cannot connect bridge

This was introduced by commit edbbae7fba495284f72f05768696572691231558
("ARM: dts: imx7: add MIPI-DSI support"). This patch is routing the
lcdif to the mipi_dsi_in_lcdif endpoint, however we do not have the DSI
pins available in our edge connector. Instead, we use the parallel RGB
LCD interface directly with, as example, an external LVDS transmitter:

&lcdif {
..
status = "disabled";

port {
lcdif_out: endpoint {
remote-endpoint = <&lcd_panel_in>;
};
};
};

By applying the following patch, the issue is gone and the LVDS works
again:

diff --git a/arch/arm/boot/dts/nxp/imx/imx7s.dtsi b/arch/arm/boot/dts/nxp/imx/imx7s.dtsi
index ebf7befcc11e..9c81c6baa2d3 100644
--- a/arch/arm/boot/dts/nxp/imx/imx7s.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx7s.dtsi
@@ -834,16 +834,6 @@ lcdif: lcdif@30730000 {
<&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>;
clock-names = "pix", "axi";
status = "disabled";
-
- port {
- #address-cells = <1>;
- #size-cells = <0>;
-
- lcdif_out_mipi_dsi: endpoint@0 {
- reg = <0>;
- remote-endpoint = <&mipi_dsi_in_lcdif>;
- };
- };
};

mipi_csi: mipi-csi@30750000 {
@@ -895,22 +885,6 @@ mipi_dsi: dsi@30760000 {
samsung,esc-clock-frequency = <20000000>;
samsung,pll-clock-frequency = <24000000>;
status = "disabled";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- mipi_dsi_in_lcdif: endpoint@0 {
- reg = <0>;
- remote-endpoint = <&lcdif_out_mipi_dsi>;
- };
- };
- };
};
};

I would like to know your opinion about this patch before sending it,
does it makes sense for you? I understand that routing to endpoint
should be done in the SoM device tree, so we are free to rout other
endpoint without issues.

Regards,
Hiago.