[ 1.318608] imx-drm display-subsystem: parent device of /bus@56220000/dsi_host@56228000 is not available
[ 1.328133] imx-drm display-subsystem: parent device of /bus@56220000/dsi_host@56248000 is not available
Find the corresponding code: vendor/nxp-opensource/kernel_imx/drivers/gpu/drm/drm_of.c
drm_of_component_probe_with_match is called by vendor/nxp-opensource/kernel_imx/drivers/gpu/drm/imx/imx-drm-core.c
drm_of_component_probe_with_match
port = of_parse_phandle(dev->of_node, "ports", i);
for_each_child_of_node(port, ep) {
remote = of_graph_get_remote_port_parent(ep);
if (!remote || !of_device_is_available(remote)) {
of_node_put(remote);
continue;
} else if (!of_device_is_available(remote->parent)) {
dev_warn(dev, "parent device of %pOF is not available\n",
remote);
of_node_put(remote);
continue;
}
drm_of_component_match_add(dev, &match, compare_of,
remote);
of_node_put(remote);
}
of_node_put(port);
Add printing information and find that the value of remote is as follows
/bus@56220000/ldb@562210e0/lvds-channel@0 The device tree is disabled
/bus@56220000/ldb@562210e0/lvds-channel@1 The device tree is disabled
/bus@56220000/dsi_host@56228000
/bus@56220000/ldb@562410e0/lvds-channel@0 The device tree is disabled
/bus@56220000/ldb@562410e0/lvds-channel@1 The device tree is disabled
/bus@56220000/dsi_host@56248000
The parent node of /bus@56220000/dsi_host@56228000 and /bus@56220000/dsi_host@56248000 is lvds_subsys shared by M4. At the beginning, it was disabled, so an error was reported. It also causes that when Android starts, when bind is executed, there is no dsi_host node, and no display
The official default is LVDS. The parent node of /bus@56220000/ldb@562210e0/lvds-channel@0 is ldb1, which is okay by default, so there is no problem.
So you should set display_subsystem to disabled, and then add it to the M4 share. Modify as follows:
--- a/vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale/imx8qxp-ss-dc.dtsi
+++ b/vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale/imx8qxp-ss-dc.dtsi
@@ -41,7 +41,7 @@
};
/ {
- display-subsystem {
+ display_subsystem: display-subsystem {
compatible = "fsl,imx-display-subsystem";
ports = <&dpu_disp0>, <&dpu_disp1>;
};
--- a/vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale/imx8qxp-mek-car.dts
+++ b/vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale/imx8qxp-mek-car.dts
@@ -26,12 +26,17 @@
status = "disabled";
};
+&display_subsystem {
+ status = "disabled";
+};
+
&vehicle_rpmsg_m4 {
#address-cells = <2>;
#size-cells = <2>;
status = "okay";
ranges;
fsl,resources = <&lvds_subsys>,
+ <&display_subsystem>,
<&dc0_subsys>,
<&img_subsys>;