mxc_sdc_fb fb.16: timeout when waiting for flip irq

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

mxc_sdc_fb fb.16: timeout when waiting for flip irq

4,508 Views
wanbenzhou
Contributor II

我们用 imx6d、imx6s分别驱动1920x720和1440x540分辨率的显示屏,运行Qt程序的同时有循环播放h264或mp4视频(视频分辨率与屏幕分辨率相同)的操作,运行一段时间会有出现显示屏黑屏的情况,当较频繁的重复播放视频时,相对更容易出现黑屏状态。黑屏后内核不停输出

“mxc_sdc_fb fb.16: timeout when waiting for flip irq”

消息,不能自行恢复,只能断电重新启动才能恢复正常显示。

请问这是什么原因导致的, 知道的请指点一下,谢谢。

附件是出现问题时的dmesg信息。

 

Labels (1)
0 Kudos
11 Replies

4,155 Views
潘紫东
Contributor III

目前在IMX6DUAL   kernel Linux4.1.15  android 6.0.1上我们也遇到该问题。

出现该问题的概率极低,目前定位在idmac cpmem通道参数出现问题了。

还在定位cpmem通道参数到底是软件触发或者硬件偶发?

NXP的FAE麻烦支持一下,由于该问题倒致生产产线停工。

mxc_sdc_fb fb@0: timeout when waiting for flip irq

mxc_sdc_fb fb@0: timeout when waiting for flip irq

mxc_sdc_fb fb@0: timeout when waiting for flip irq

mxc_sdc_fb fb@0: timeout when waiting for flip irq

mxc_sdc_fb fb@0: timeout when waiting for flip irq

0 Kudos

4,156 Views
joanxie
NXP TechSupport
NXP TechSupport

if you don't use QT or use the lower resolution, could you get this error? about this error, , maybe you can refer to the topic:

https://community.nxp.com/message/1225141?commentID=1225141#comment-1225141 

0 Kudos

4,156 Views
wanbenzhou
Contributor II

谢谢您的回复。

我们目前就是按这个贴子查找的问题,还没有解决,而且这个贴子也没有说明具体如何解决。

还有其它的信息可提供吗?

0 Kudos

4,156 Views
joanxie
NXP TechSupport
NXP TechSupport

could you tell me what bsp do you use? when you upgrade to the latest bsp version?

0 Kudos

4,156 Views
wanbenzhou
Contributor II

My kernel is 3.14.52, not use latest bsp yet.

0 Kudos

4,155 Views
joanxie
NXP TechSupport
NXP TechSupport

I got reply for this error message:

"

The error means there is display underrun on IPU.

 

I think the customer had used IPU to render for mirrowlink, can they switch to GPU render?

When display width is bigger than 1024 pixel, IPU render need use split mode to process each frame with two IPU tasks, this will increase the IPU loading.

 

To reduce the failure, the customer can add "dmfc=3" in the kernel boot command line, and please also apply the attached patch to disable the CPU idle to wait mode.

"

0 Kudos

4,154 Views
max_lu
Contributor I

Hi Joan,

We also ran into a similar issue during reboot tests in a relatively low probability (around 1% of reboots). We have this issue on various screen resolutions, 640*480, 1366*768, 1280*720, seems not related to the 1024 pixel limit.

We have the following logs:

Linux version 3.14.28+g35438a2 (autobuild@optbuild3) (gcc version 4.9.1 (GCC) ) #1 SMP PREEMPT Fri Jul 3 09:28:14 NZST 2020
...
imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
imx-ipuv3 2800000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
...
platform ldb.13: Driver ldb requests probe deferral
platform fb.27: Driver mxc_sdc_fb requests probe deferral
platform fb.28: Driver mxc_sdc_fb requests probe deferral
platform ldb.13: Driver ldb requests probe deferral
platform fb.27: Driver mxc_sdc_fb requests probe deferral
platform fb.28: Driver mxc_sdc_fb requests probe deferral
...
mxc_sdc_fb fb.27: registered mxc display driver ldb
imx-ipuv3 2800000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
mxc_sdc_fb fb.28: registered mxc display driver ldb
mxc_sdc_fb fb.27: timeout when waiting for flip irq
...

I also used an oscilloscope to capture LVDS ouput clock, with disabled video config in u-boot to get rid of unnecessary clock waveform, we have the following results:

This is the working one:

DS1Z_QuickPrint15.png

This is the failing one:

DS1Z_QuickPrint17-e.png

I also dumped all IPU, CCM, CCM Analog related registers when this issue happened, here're the registers compare (after we have the "timeout flip irq" kernel message):

WinMergeU_o0wvYb9ZLw.png

And further investigation shows 0x02a40174 is the first register which could tell this issue is happening, there's a "DI1_CNTR_FIFO_EMPTY" flag got cleared in this register.

I've been looking into this for a short while, before your recent reply on this post. I've already tried "dmfc=3" argument in kernel command line and the patch. They turned out to be not helpful on this issue.

Could the information I provided above be able to concluded as we are running into the same issue you're discussing? Looking forward to hear from you. Thank you very much.

Kind regards,

Max

0 Kudos

4,154 Views
max_lu
Contributor I

Hi,

Thanks to NXP's support team, this issue is solved. Please follow https://www.nxp.com/docs/en/engineering-bulletin/EB821.pdf. And this fix also been included in NXP's kernel https://source.codeaurora.org/external/imx/linux-imx, branch imx_3.14.52_1.1.0_ga, commit id bbb48bbc88284f29c6980ee70373f91c7c86ff42 and 3f575c4967001c239634565c1327f4cc1a30b2c4.

0 Kudos

4,155 Views
wanbenzhou
Contributor II

Hi Max,

If  I using the branch "branch imx_3.14.52_1.1.0_ga",  without any change ,   

the “mxc_sdc_fb fb.16: timeout when waiting for flip irq”  will be solved? 

But I am already using  3.14.52 now!

0 Kudos

4,155 Views
max_lu
Contributor I

Hi Wanben,

I think there're several different root causes for this "timeout when waiting for flip irq" log output. If you could use devmem2 to check that the value of IPUx_DIx_STAT is 0x00000001 instead of 0x00000005 when this issue happens, there'll be a good probability that you're running into the same issue as me.

0 Kudos

4,155 Views
wanbenzhou
Contributor II

Thanks, I will do it later.   

I have the trouble with imx8 now.

0 Kudos