No more hdmi output after some time

Hi,
I have done a software which play some video over hdmi.
After some time, there is no more signal on the hdmi bus.
The video still playing sound over analog output.
If I stop my software and play a video with a gst command line like the following one I have this result :

gst-launch-1.0 filesrc location=/media/sda1/FILE04_earth_night_rotate_1080.mov ! qtdemux ! vpudec ! imxv4l2sink
[INFO]  Product Info: i.MX6Q/D/S
====== IMXV4L2SINK: 4.0.8 build on Oct 25 2016 17:26:34. ======
Setting pipeline to PAUSED ...
display(/dev/fb0) resolution is (1920x1080).
[INFO]  Product Info: i.MX6Q/D/S
====== VPUDEC: 4.0.8 build on Oct 25 2016 17:26:48. ======
        wrapper: 1.0.62 (VPUWRAPPER_ARM_LINUX Build on Oct 25 2016 17:15:08)
        vpulib: 5.4.32
        firmware: 3.1.1.46070
Pipeline is PREROLLING ...
[INFO]  bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
v4l2sink need allocate 3 buffers.
[10512.736909] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
[10512.736928] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10512.751305] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
[10512.758416] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10512.767133] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10512.774313] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[10512.795879] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[10512.802953] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10512.810285] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[10512.817384] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10513.333305] mxc_sdc_fb fb.20: timeout when waiting for flip irq
[10513.339451] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[10513.346636] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10513.354087] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[10513.361182] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10513.873327] mxc_sdc_fb fb.20: timeout when waiting for flip irq
[10513.879481] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[10513.886659] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10513.894148] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[10513.901253] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000

Do you have an idea why I loose the hdmi signal ?

I have a similar problem again.
I have no more signal on hdmi after 58h of running different video.
When I stop the application I have this message on the console :

[86523.753320] imx-ipuv3 2400000.ipu: warning: wait for bg sync eof timeout

When I try to play a video with gst-launch I have this message :

root@apalis-imx6:~# gst-launch-1.0 filesrc location=/media/sda1/FILE01_SMT.AVI ! avidemux ! queue ! 
vpudec ! imxv4l2sink
[INFO]  Product Info: i.MX6Q/D/S
====== IMXV4L2SINK: 4.0.8 build on Oct 25 2016 17:26:34. ======
Setting pipeline to PAUSED ...
display(/dev/fb0) resolution is (1920x1080).
[INFO]  Product Info: i.MX6Q/D/S
====== VPUDEC: 4.0.8 build on Oct 25 2016 17:26:48. ======
        wrapper: 1.0.62 (VPUWRAPPER_ARM_LINUX Build on Oct 25 2016 17:15:08)
        vpulib: 5.4.32
        firmware: 3.1.1.46070
Pipeline is PREROLLING ...
[INFO]  bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
v4l2sink need allocate 3 buffers.
New clock: GstSystemClock
[86789.585153] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[86789.585177] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[86789.599682] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
[86789.606748] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[86789.613922] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08000000
[86789.633005] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[86789.640074] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[86790.163319] mxc_sdc_fb fb.20: timeout when waiting for flip irq
ERROR: from element /GstPipeline:[86790.169538] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 
= 0x08800000
[86790.179205] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
pipeline0/GstAviDemux:avidemux0: Internal data stream error.
Additional debug info:
/home/fiveco/Programmes/oe-core/build/out-glibc/work/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/gstr
eamer1.0-plugins-good/1.4.5-r0/gst-plugins-good-1.4.5/gst/avi/gstavidemux.c(5678): gst_avi_demux_loo
p (): /GstPipeline:pipeline0/GstAviDemux:avidemux0:
streaming stopped, reason error
Execution ended after 0:00:00.617098667
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
[86790.703311] mxc_sdc_fb fb.20: timeout when waiting for flip irq
[86790.709477] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
[86790.716565] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[86791.333310] imx-ipuv3 2400000.ipu: warning: wait for bg sync eof timeout

(gst-launch-1.0:12950): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcou
nt > 0' failed
Setting pipeline to NULL ...
Total showed frames (4), playing for (0:00:00.618206000), fps (6.470).
Freeing pipeline ...

Any news ?

I have this issue too, on a Sabre based custom board. I’m still testing (only 10 hours in so far), but adding dmfc=3 to the kernel command line is working on one test rig, and running this command is working on the other.

# devmem2 0x020e0018 w 0xffffffff
# devmem2 0x020e001c w 0xffffffff

Sources:
http://forum.kodi.tv/showthread.php?tid=211289&page=4
https://lists.yoctoproject.org/pipermail/meta-freescale/2013-October/005035.html

It looks like the display controller driving the display got somehow stuck, which of course causes issues for the whole pipeline. All messages show some kind of synchronization timeout, so it seems that the driver is waiting for the controller to finish clocking out the picture, but the hardware stopped already completely.

Do you have complete kernel output when it actually gets stuck? It might give a hint what goes wrong. Maybe also running the kernel with all messages enabled might enable some additional messages (ignore_loglevel in the kernel boot arguments).

I setup a test environment here with GStreamer and a while true loop:

while [ true ]; do gst-launch-1.0 filesrc location=earth_night_rotate_1080.mov ! qtdemux ! vpudec ! imxv4l2sink; done

We will soon release a new release based on NXPs 4.1.15 GA 2.0.0 release, it might be worth a try to verify whether the problem still persists.

Hm, the NXP i.MX Linux Release Notes mention that flag:

"dmfc=1" means
DMFC_HIGH_RESOLUTION_DC
"dmfc=2" means
DMFC_HIGH_RESOLUTION_DP
"dmfc=3" means
DMFC_HIGH_RESOLUTION_ONLY_DP

DMFC stands for Display Multi FIFO Controller and is part of IPU. Quite likely that this could influence the behavior of the IPU so that it does not get stuck anymore.

Now, 3 weeks without problems

The devmem2 command not works, if I do this change, I loose the hdmi signal as soon as start a gstreamer pipeline.
It seems that adding dmfc=3 to the kernel command line solve the problem.
My application runs for 6 days without problems with this argument.

Glad to hear it works!

For what its worth, I had my test setup running since mid of December, I did not saw the issues you are seeing, even without the dmfc=3 parameter… So it might also be device related?

My setup used the V2.6.1 Beta 1 release on a Apalis iMX6Q (not IT though)…

I had lots of IPU warnings, but the display connected over HDMI kept showing the video

[2114289.695130] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[2118050.395231] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[2128892.745176] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[2131351.711848] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[2132476.811849] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[2146222.545182] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[2147513.278483] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000