Hi all,
We have a custom board based on iMX8MPlus. We are using custom BSP based on 5.4.x_2.2.0.
HDMI pinmux settings are:
MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL 0x400001c3
MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA 0x400001c3
MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD 0x40000019
HDMI related DTS settings are:
&hdmimix_clk {
status = "okay";
};
&irqsteer_hdmi {
status = "okay";
};
&hdmimix_reset {
status = "okay";
};
&hdmi_pavi {
status = "okay";
};
&hdmi {
status = "okay";
};
&hdmiphy {
status = "okay";
};
&lcdif3 {
status = "okay";
};
HDMI is properly probbed:
$ dmesg | grep -i hdmi
[ 1.949710] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517
[ 3.052758] imx-hdmi-pavi 32fc4000.hdmi-pai-pvi: No pvi clock get
[ 4.618794] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
[ 4.630347] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
[ 4.640712] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
HDMI monitor is properly detected when cable is inserted (see attached modetest.txt output).
We have also LVDS display and weston running. Weston properly displays desktop when HDMI is not enabled. Once we enable HDMI, weston fails to display the desktop on LVDS. If we are trying to stop weston (to be able to use modetest to set HDMI resolution manually) we are observing following error:
systemctl stop weston@root.service
[ 1112.771523] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:39:crtc-2] flip_done timed out
[ 1123.012432] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:43:HDMI-A-1] flip_done timed out
[ 1133.252823] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:37:plane-2] flip_done timed out
[ 1133.372802] ------------[ cut here ]------------
[ 1133.377432] [CRTC:39:crtc-2] vblank wait timed out
[ 1133.382305] WARNING: CPU: 0 PID: 529 at drivers/gpu/drm/drm_atomic_helper.c:1467 drm_atomic_helper_wait_for_vblanks.part.0+0x274/0x290
[ 1133.394387] Modules linked in: imx_sdma
[ 1133.398227] CPU: 0 PID: 529 Comm: weston-launch Tainted: G W 5.4.93+gc18de2782a #1
[ 1133.407094] Hardware name: Hillrom i.MX8MPlus Seymour board (DT)
[ 1133.413097] pstate: 40000005 (nZcv daif -PAN -UAO)
[ 1133.417886] pc : drm_atomic_helper_wait_for_vblanks.part.0+0x274/0x290
[ 1133.424410] lr : drm_atomic_helper_wait_for_vblanks.part.0+0x274/0x290
[ 1133.430932] sp : ffff80002419b9e0
[ 1133.434242] x29: ffff80002419b9e0 x28: 0000000000000000
[ 1133.439553] x27: 0000000000000002 x26: 0000000000000070
[ 1133.444861] x25: ffff000029738000 x24: 0000000000000001
[ 1133.450169] x23: 0000000000000038 x22: 0000000000000006
[ 1133.455478] x21: ffff0000240c3f00 x20: ffff0000296cf888
[ 1133.460788] x19: 0000000000000002 x18: 0000000000000010
[ 1133.466097] x17: 0000000000000000 x16: 0000000000000000
[ 1133.471405] x15: ffff0000249eae70 x14: ffffffffffffffff
[ 1133.476713] x13: ffff8000a419b737 x12: 0000000000000000
[ 1133.482022] x11: 0000000000000034 x10: 00000000000009e0
[ 1133.487330] x9 : ffff80002419b700 x8 : ffff0000249eb440
[ 1133.492638] x7 : ffff00002bd53940 x6 : ffff000028d380f0
[ 1133.497946] x5 : 0000000000000000 x4 : ffff00002bd401b8
[ 1133.503254] x3 : ffff00002bd4f100 x2 : ffff00002bd401b8
[ 1133.508563] x1 : 2b6bee894b669e00 x0 : 0000000000000000
[ 1133.513871] Call trace:
[ 1133.516317] drm_atomic_helper_wait_for_vblanks.part.0+0x274/0x290
[ 1133.522494] drm_atomic_helper_wait_for_vblanks+0x14/0x20
[ 1133.527891] lcdifv3_drm_atomic_commit_tail+0x50/0x68
[ 1133.532939] commit_tail+0x9c/0x138
[ 1133.536424] drm_atomic_helper_commit+0xc8/0x140
[ 1133.541040] drm_atomic_commit+0x48/0x58
[ 1133.544962] drm_client_modeset_commit_atomic.isra.0+0x174/0x1f8
[ 1133.550965] drm_client_modeset_commit_force+0x58/0x190
[ 1133.556189] drm_fb_helper_restore_fbdev_mode_unlocked+0x70/0xd0
[ 1133.562192] drm_fbdev_client_restore+0x14/0x20
[ 1133.566721] drm_client_dev_restore+0x78/0xc8
[ 1133.571074] drm_lastclose+0x4c/0x58
[ 1133.574645] drm_release+0xd4/0xe0
[ 1133.578047] __fput+0x88/0x228
[ 1133.581099] ____fput+0xc/0x18
[ 1133.584152] task_work_run+0x80/0x130
[ 1133.587811] do_exit+0x2d4/0xa10
[ 1133.591036] do_group_exit+0x40/0xa0
[ 1133.594608] __arm64_sys_exit_group+0x14/0x18
[ 1133.598963] el0_svc_common.constprop.0+0x68/0x160
[ 1133.603751] el0_svc_handler+0x20/0x80
[ 1133.607497] el0_svc+0x8/0x208
[ 1133.610549] ---[ end trace fafd176c2d69445c ]---
HDMI monitor reports "No signal".
Attached also clk_summary output.
Are we missing something in the configuration? Any hints would be appreciated.
Thanks,
Alexey