We have designed a custom IMX8MP board that has a HDMI display connection and a LVDS connection directly to an LCD panel. We have been using the NXP hardknott release with the kernel 5.10.52 and our DTB. This is working generally well but we have a powerdown issue that may be a kernel panic.
So we thought we would try using the relatively recent 5.15.52 kernel. We have built this and modified our DTB to suit but cannot get the LVDS LCD panel to work. As soon as we enable the lvds-channel@0 the system no longer has any displays (ls /sys/class/drm). If we set lvds-channel@0 to disabled then we do get a HDMI display. We have played with the DTS quite a bit but can't get it to be available.
Attached is our basic DTS although we have played around a lot. The only thing of note is some kernel messages:
platform 32c00000.bus:ldb@32ec005c: Fixing up cyclic dependency with 32e90000.lcd-controller
platform 32fd8000.hdmi: Fixing up cyclic dependency with 32fc6000.lcd-controller
Any ideas on differences we need to our DTS to enable an LVDS->LCD panel in a 5.15.52 kernel ?
已解决! 转到解答。
I have found the issue. With the updated kernel some kernel configuration parameters had changed and the imx8mp-ldb.o driver was not actually being built. I needed to add: DRM_FSL_IMX_LVDS_BRIDGE and DRM_IMX8MP_LDB.
Once the kernel was built with these, both the LDB and HDMI interfaces now worked. Shame that there were no error messages on this and that adding the ldb config in the DTB stopped the HDMI working with no obvious errors.
I have found the issue. With the updated kernel some kernel configuration parameters had changed and the imx8mp-ldb.o driver was not actually being built. I needed to add: DRM_FSL_IMX_LVDS_BRIDGE and DRM_IMX8MP_LDB.
Once the kernel was built with these, both the LDB and HDMI interfaces now worked. Shame that there were no error messages on this and that adding the ldb config in the DTB stopped the HDMI working with no obvious errors.