View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006304 | fsimx_Linux | Kernel | public | 2024-06-20 13:58 | 2024-08-01 12:44 |
Reporter | gerbach | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Product Version | fsimx8mp-Y2023.09 | ||||
Target Version | fsimx8m-next | Fixed in Version | fsimx8mp-Y2024.07 | ||
Summary | 0006304: [FSIMX8MP] HDMI+LVDS whitout LVDS connected leads to endless loop while booting | ||||
Description | When activating HDMI and LVDS in the device tree without connecting a LVDS display the Kernel boots into an endless loop printing dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2) imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) imx-drm display-subsystem: bound imx-lcdifv3-crtc.1 (ops lcdifv3_crtc_ops) imx-drm display-subsystem: bound imx-lcdifv3-crtc.2 (ops lcdifv3_crtc_ops) dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2) imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) imx-drm display-subsystem: bound imx-lcdifv3-crtc.1 (ops lcdifv3_crtc_ops) imx-drm display-subsystem: bound imx-lcdifv3-crtc.2 (ops lcdifv3_crtc_ops) dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2) This may be due to a DEFER loop see https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2189591.html | ||||
Additional Information | https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2189591.html As said I'm currently on the imx-drm driver. The iMX6 devices are using the synopsis HDMI IP core and so they are using this bridge device driver (drivers/gpu/drm/bridge/synopsys/). The imx-drm driver can be build module wise. As example I enabled the LDB and the HDMI support. The HDMI driver is composed as platform driver with different (sub-)drivers and devices. Those devices are populated by the HDMI core driver _probe() function and triggers a driver_deferred_probe_trigger() after the driver successfully probed. The LDB driver bind() returns -EPROBE_DEFER because the panel we are looking for depends on a defered regulator device. Now the defered probe code tries to probe the defered devices again because the local-trigger count was changed by the HDMI driver and we are in the never ending loop. | ||||
Forum Link | |||||