Загрузка данных


root@imx8mpevk:~# dmesg | grep dsi
[    0.062454] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.062956] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[    0.063009] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[    0.063105] /soc@0/bus@32c00000/lcd-controller@32e80000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.071562] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.073884] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.079281] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[    0.079326] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[    0.079435] /soc@0/bus@32c00000/lcd-controller@32e80000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.079982] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.080056] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[    0.080098] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[    0.080351] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e80000
[    0.080437] /soc@0/bus@32c00000/lcd-controller@32e80000: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    3.220925] imx_sec_dsim_drv 32e60000.mipi_dsi: version number is 0x1060200
[    3.227941] imx_sec_dsim_drv 32e60000.mipi_dsi: [drm] *ERROR* modalias failure on /soc@0/bus@32c00000/mipi_dsi@32e60000/port@1
[    3.243316] lt9611_bridge_attach(1493) dsi0=(____ptrval____)
[    3.248993] imx-drm display-subsystem: bound 32e60000.mipi_dsi (ops imx_sec_dsim_ops)
root@imx8mpevk:~# dmesg | grep lt9611
[    0.062454] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.062956] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[    0.071562] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.073884] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.079281] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[    0.079982] /soc@0/bus@30800000/i2c@30a30000/lt9611@3b: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e60000
[    0.080056] /soc@0/bus@32c00000/mipi_dsi@32e60000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/lt9611@3b
[    2.891199] lt9611_parse_dt(1635) next_bridge=0000000000000000
[    2.897140] lt9611 1-003b: supply vdd not found, using dummy regulator
[    2.903778] lt9611 1-003b: supply vcc not found, using dummy regulator
[    2.920309] lt9611 1-003b: lt9611_reset
[    3.076224] lt9611 1-003b: LT9611 revision: 0xe2
[    3.085688] lt9611_audio_init(1845) is_i2s=1
[    3.089975] lt9611 1-003b: LT9611: Registering HDMI Codec with I2S capability
[    3.097528] lt9611_audio_init(1857) audio_pdev=0xD0CD1000
[    3.239382] lt9611_bridge_attach(1488)
[    3.243316] lt9611_bridge_attach(1493) dsi0=(____ptrval____)

static int lt9611_parse_dt(struct device *dev, struct lt9611 *lt9611)
{
	int ret = 0;
	lt9611->dsi0_node = of_graph_get_remote_node(dev->of_node, 0, -1);
	if (!lt9611->dsi0_node) {
		dev_err(lt9611->dev, "failed to get remote node for primary dsi\n");
		return -ENODEV;
	}
	lt9611->dsi1_node = of_graph_get_remote_node(dev->of_node, 1, -1);
	lt9611->ac_mode = of_property_read_bool(dev->of_node, "lt,ac-mode");
	ret = drm_of_find_panel_or_bridge(dev->of_node, 1, -1, NULL, &lt9611->next_bridge);
        printk("%s(%d) next_bridge=%p\n",__FUNCTION__,__LINE__,lt9611->next_bridge);
        if(ret == -ENODEV) {
            lt9611->next_bridge = NULL;
            return 0;
        }
        return ret;
}

drm_of_find_panel_or_bridge - не находит bridge

&i2c2 {
	/delete-node/ ov5640_mipi@3c;
	/delete-node/ adv7535@3d;

	lt9611_codec: lt9611@3b {
		compatible = "lontium,lt9611";
		reg = <0x3b>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c2_synaptics_dsx_io>;
		interrupt-parent = <&gpio1>;
		interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
		status = "okay";

		port {
			lt9611_to_dsi: endpoint {
				remote-endpoint = <&dsi_to_lt9611>;
			};
		};
	};
};

&mipi_dsi {
	status = "okay";
	/delete-node/ port@1;

	port@1 {
		reg = <1>;
		dsi_to_lt9611: endpoint {
			remote-endpoint = <&lt9611_to_dsi>;
			attach-bridge;
		};
	};
};