hi all,
because i'm encounterd some question with ldb display ,it will indiciate that some error as follow sometimes.
<3>mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
<3>mxc_sdc_fb mxc_sdc_fb.0: MXCFB_WAIT_FOR_VSYNC: timeout 0
<3>mxc_sdc_fb mxc_sdc_fb.0: MXCFB_WAIT_FOR_VSYNC: timeout 0
.....
.....
or
E/FslHwcomposer( 2370): FBIO_WAITFORVSYNC error: Timer expired
mxc_sdc_fb mxc_sdc_fb.0: MXCFB_WAIT_FOR_VSYNC: timeout 0
E/FslHwcomposer( 2370): FBIO_WAITFORVSYNC error: Timer expired
mxc_sdc_fb mxc_sdc_fb.0: MXCFB_WAIT_FOR_VSYNC: timeout 0
and then the screen can't display anything.
so i check the source code with relative driver.the kernel wll pop these msgs because that something is not "completed",why? because the correspond handler isn't be invoked? the sync irq of per-IPU will invoke all handler if they require, so in ipu-common.c:
in function ipu_sync_irq_handler() and ipu_err_irq_handler(), all of them will attempt to acquire the same spin_lock, i have a question about this.
if the CPU0(assume) enter the sync irq isr, it obtain the spin_lock, and then some errors of IPU block happen(the sync irq ise not release the spin lock yet), the system maybe select CPU0 to hanlde this irq, now the ipu_err_irq_handler want to acquire the same spin_lock that ipu_sync_irq_handler holded, is this possible?(if possible(CPU0 unuseful?), use spin_lock_irqsave / spin_lock_irqresotre instead of spin_lock/spin_unlock will avoid this issue, right?)
thank you for your reply!!!!
Hi datoudatou
such random errors may be caused by IPU fifo underrun
mentioned below
What does imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_10 mean?
Just for testing one can decrease IPU bus load: frame rate, resolution
and check if this helps.
Best regards
chip
Hi,
我也会偶尔遇到同样的问题:
mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
mxc_sdc_fb mxc_sdc_fb.0: MXCFB_WAIT_FOR_VSYNC: timeout 0
mxc_sdc_fb mxc_sdc_fb.0: MXCFB_WAIT_FOR_VSYNC: timeout 0
屏幕是黑屏。
我的内核版本为3.0.35。
你的问题解决了没?
如果解决了能否提供你的方法呢?将不胜感激。
Hello,
Thank you for your post, however please consider moving it to the right community place (e.g. i.MX Community ) to get it visible for active members.
For details please see general advice Where to post a Discussion?
Thank you for using Freescale Community.
hey, datoudatou|:
i get the same issue with u. have u fixed it ?
issue detail as below.
i use spin_lock_irqsave/spin_lock_irqresotre instead of spin_lock/spin_unlock in function ipu_sync_irq_handler & ipu_err_irq_handler(ipu_common.c),now it's testing,not sure whether it's fixed this issue because it's hard to reappear.you can test this in your platform if it's happend with 10~20% rate.
hey, datoudatou. thanks for your guide. I'll tell u my result after making
more test in my platform.
If u found out this issue again, plz let me know.
On Tue, Apr 22, 2014 at 11:47 AM, datoudatou datoudatou <
hey, datoudatou. i also get this issue when using spin_lock_irqsave/spin_lock_irqresotre.