Dear freescale,
We used imx6d for our production. We have one camera through the analog signal input(cvbs) to video decoder(tw8834), and then output bt656 data to ipu.
We do pressure test for camera, we kept switching in the main interface and reverse interface for one night. There is a great chance can't get reverse image,
and reverse interface is black.
Log is as follows:
[10:39:49]root@b1021h:/ # [ 1700.285412] imx-ipuv3 imx-ipuv3.1: IPU Warning - IPU_INT_STAT_5 = 0x00800000
[10:39:49][ 1700.285444] imx-ipuv3 imx-ipuv3.1: IPU Warning - IPU_INT_STAT_10 = 0x00080000
[10:39:50][ 1700.639441] [saf7741_asp_loudness_boost_put] ---> gain = 0
[10:39:50][ 1701.048954] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:51][ 1701.569095] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:51][ 1702.088923] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:52][ 1702.608919] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:52][ 1703.129132] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:53][ 1703.648922] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:53][ 1704.169146] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:54][ 1704.688911] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:54][ 1705.209130] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:55][ 1705.728902] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[10:39:55][ 1706.238869] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
please help!
Dear freescale,
I add some logs for ipu_err_irq_handler function. when IPU_INT_STAT_5 and IPU_INT_STAT_10 are error at the same time.
The ipu will be crashed
[ 302.333807] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[ 302.420299] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_5 = 0x00800000
[ 302.420326] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_5 = 0x00800000
[ 302.420350] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_5 = 0x00800000
[ 302.420374] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_6 = 0x00000000
[ 302.420396] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_6 = 0x00000000
[ 302.420420] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_9 = 0x00000000
[ 302.420442] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_9 = 0x00000000
[ 302.420465] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_10 = 0x00080000
[ 302.420491] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_10 = 0x00000000
[ 302.420521] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_5 = 0x00000000
[ 302.420543] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_5 = 0x00000000
[ 302.420565] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_6 = 0x00000000
[ 302.420586] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_6 = 0x00000000
[ 302.420607] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_9 = 0x00000000
[ 302.420629] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_9 = 0x00000000
[ 302.420651] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_10 = 0x00080000
[ 302.420672] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_CTRL_10 = 0x00080000
[ 302.420695] imx-ipuv3 imx-ipuv3.1: [tpc]IPU Warning - IPU_INT_STAT_10 = 0x00080000
[ 302.556267] imx-esai imx-esai.0: Resetting ESAI!
[ 303.303790] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
[ 303.823795] mxc_sdc_fb mxc_sdc_fb.0: timeout when waiting for flip irq
Hi pengchuan
on Freescale BSP, the LVDS panel will be enabled in Uboot, then in kernel,
some IPU re-initialization code will be skipped, but on your board, if you had used
other dispay device, or you had used other IPU DI port, this setting will get the flip irq error.
You should make sure the IPU plat_data->bypass_reset should be false in ipu_common.c,
function ipu_probe(). If bypass_reset is true, the IPU will not be fully initialized.
Some more references:
https://community.freescale.com/thread/322574
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Dear igorpadykov,
I have check the value of bypass_reset is false, this is our camera fmt as follow:
------------------------------------------------------------------------------------------------
{ | |
struct v4l2_format overlay_fmt; | |
overlay_fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY; | |
if(cameraType == CAMERA_TYPE_NORMAL) | |
{ | |
overlay_fmt.fmt.win.w.left = 360; | |
overlay_fmt.fmt.win.w.top = 10; | |
} | |
else | |
{ | |
overlay_fmt.fmt.win.w.left = 180; | |
overlay_fmt.fmt.win.w.top = 0; | |
} | |
overlay_fmt.fmt.win.w.width = fbinfo.xres;//800; | |
overlay_fmt.fmt.win.w.height = fbinfo.yres;//480; | |
if (ioctl(v4l2_fp, VIDIOC_S_FMT, &overlay_fmt) < 0) { | |
ALOGE("%s:%d VIDIOC_S_fmt failed\n", __FUNCTION__,__LINE__); | |
ALOGE("w is %d,h is %d.\n ",overlay_fmt.fmt.win.w.width,overlay_fmt.fmt.win.w.height); | |
goto CLOSE; | |
} | |
} |
--------------------------------------------------------------------------------------------------
If we set left and top to "180" and "0", all is ok. But if we set left and top to "360" and "10", it will report IPU Warning.