Hi community, I am working with a custom board based on imx8qm-mek.
I managed the LVDS displays to have a splash screen transition from u-boot to the kernel, as DSI is not fully supported at the moment in u-boot. For that I keep the related power domains powered on when booting the kernel.
Now the problem arises when probing and starting the display subsystem in the kernel, with only the 2 LVDS displays it looks like it works although I see some errors:
[ 41.952572] dc0_disp1_clk: Resource:32 reported EBUSY when trying to set clock parent 3
[ 41.961363] dc1_disp1_clk: Resource:49 reported EBUSY when trying to set clock parent 3
[ 43.007270] [drm] [CRTC:38:crtc-0] dpu_crtc_atomic_enable: wait for content shdld done timeout
[ 44.159488] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: wait for safety shdld done timeout
The EBUSY is from the SCU and that is normal as that clock has been set at u-boot time, I just ignore that message and assign the clock parent:
@@ -363,9 +363,21 @@ static int clk_scu_set_parent(struct clk_hw *hw, u8 index)
msg.parent = index;
ret = imx_scu_call_rpc(ccm_ipc_handle, &msg, true);
+ if(ret==-EBUSY) {
+ clk->parent_index = index;
+ pr_info("%s: Resource:%d reported EBUSY when trying to set clock parent %d\n",
+ clk_hw_get_name(hw), clk->rsrc_id, index);
+ return 0;
+ }
And this works only with those warnings previosly mentioned. But when I have a DSI display also connected then it does not work properly, only 1 or no display are showing Weston desktop and I see the following errors:
[ 41.952572] dc0_disp1_clk: Resource:32 reported EBUSY when trying to set clock parent 3
[ 41.961363] dc1_disp1_clk: Resource:49 reported EBUSY when trying to set clock parent 3
[ 43.007270] [drm] [CRTC:38:crtc-0] dpu_crtc_atomic_enable: wait for content shdld done timeout
[ 43.115214] dpu-core 56180000.dpu: failed to wait for FrameGen0 secondary syncup
[ 44.159488] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: wait for safety shdld done timeout
[ 44.267212] dpu-core 56180000.dpu: failed to wait for FrameGen1 secondary syncup
[ 44.274615] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: FrameGen requests to read empty FIFO
[ 45.311538] [drm] [CRTC:96:crtc-2] dpu_crtc_atomic_enable: wait for content shdld done timeout
[ 45.419213] dpu-core 57180000.dpu: failed to wait for FrameGen0 secondary syncup
[ 46.463513] [drm] [CRTC:125:crtc-3] dpu_crtc_atomic_enable: wait for safety shdld done timeout
[ 46.571213] dpu-core 57180000.dpu: failed to wait for FrameGen1 secondary syncup
[ 46.578609] [drm] [CRTC:125:crtc-3] dpu_crtc_atomic_enable: FrameGen requests to read empty FIFO
When disabling this logo transition everything works fine, so I would like to get some input on how to handle this transition from a running DC subsystem from u-boot to kernel, maybe some documentation of the DPU so I can figure out how to properly do this transition?
Thanks in Advance!
Alfredo
Hi @Mantilla!
Thank you for contacting NXP Support!
We have a community post on how to add LVDS drivers in Uboot.
Please check that post and try to implement the driver using our recommendations.
Best Regards!
Chavira
Hi @Mantilla!
You can refer to this documentation:
Also, we have an internal test using iMX93 (I will send you the proper patches), which you can get based on that documentation to get success in your project.
Best Regards!
Chavira