I.MX6Q video in de-interlace problem.

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

I.MX6Q video in de-interlace problem.

3,548 Views
terrytan
Contributor I

Dear All:

BSP: L3.0.35_4.0.0

CVBS PAL/NTSC video is input to Video decoder ADV7180, and ADV7180 connect to I.MX6Q CSI BT656.

The de-interlace is set, but the quality is not good. Please check the picture below.

I have patch the file into kernel follow the instruction

https://community.freescale.com/docs/DOC-93633

but when I run the mxc_v4l2_tvin, I got the error as bellow:

It seem that some thread has occupancy the ipu task 1.

This patch I have used in imx53 platform before, It can run normally.

root@freescale ~$ ./mxc_v4l2_tvin -ow 720 -oh 480

FIXME-------ioctl_g_fmt_cap

NOW IS PALTV decoder chip is adv7180_decodeFIXME-------ioctl_g_fmt_cap

r

NOW IS PALNOW IS PAL

In mxc_v4l2_s_std ff

rawdata0: 0x00, rawdata1: 0x00

FIXME-------ioctl_g_fmt_cap

NOW IS PALVIDIOC_G_FMT failed

driver=mxc_vout, card=DISP3 FG, bus=, version=0x00000000, capabilities=0x04000002

fmt RGB565: fourcc = 0x50424752

fmt BGR24: fourcc = 0x33524742

fmt RGB24: fourcc = 0x33424752

fmt RGB32: fourcc = 0x34424752

fmt BGR32: fourcc = 0x34524742

fmt NV12: fourcc = 0x3231564e

fmt UYVY: fourcc = 0x59565955

fmt YUYV: fourcc = 0x56595559

fmt YUV422 planar: fourcc = 0x50323234

fmt YUV444: fourcc = 0x34343459

fmt YUV420: fourcc = 0x32315559

fmt YVU420: fourcc = 0x32315659

fmt TILED NV12P: fourcc = 0x50564e54

fmt TILED NV12F: fourcc = 0x46564e54

fmt YUV444 planar: fourcc = 0x50343434

UYVY

imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_10 = 0x00000001

imx-ipuv3 imx-ipuv3.0: IDMAC21's EBA0 is not 8-byte aligned

imx-ipuv3 imx-ipuv3.0: IDMAC21's EBA1 is not 8-byte aligned

start time = 473 s, 145035 usFIXME-------ioctl_g_fmt_cap

NOW IS PALNOW IS PAL

imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_10 = 0x00000001

FIXME-------ioctl_g_fmt_cap

NOW IS PALNOW IS PAL

mc_pfuze 1-0008: recv failed!:-5,bf

COULD NOT SET GP VOLTAGE!!!!

FIXME-------ioctl_g_fmt_cap

imx-ipuv3 imx-ipuv3.0: ERR[0xbfcd7200-no:0x220]ipu task_id:1 busy!

imx-ipuv3 imx-ipuv3.0: ERR:[0xbfcd7200] no-0x220 state: ipu busy

imx-ipuv3 imx-ipuv3.0: ERR: [0xbfcd7200] no-0x220,state 8: ipu busy

NOW IS PALNOW IS PAL

imx-ipuv3 imx-ipuv3.0: ERR: no-0x220,ipu_queue_task err:-125

mxc_v4l2_output mxc_v4l2_output.0: display work fail ret = -125

FIXME-------ioctl_g_fmt_cap

imx-ipuv3 imx-ipuv3.0: ERR[0xbfcd7400-no:0x230]ipu task_id:1 busy!

imx-ipuv3 imx-ipuv3.0: ERR:[0xbfcd7400] no-0x230 state: ipu busy

imx-ipuv3 imx-ipuv3.0: ERR: [0xbfcd7400] no-0x230,state 8: ipu busy

NOW IS PALNOW IS PAL

imx-ipuv3 imx-ipuv3.0: ERR: no-0x230,ipu_queue_task err:-125

mxc_v4l2_output mxc_v4l2_output.0: display work fail ret = -125

FIXME-------ioctl_g_fmt_cap

imx-ipuv3 imx-ipuv3.0: ERR[0xba25e600-no:0x240]ipu task_id:1 busy!

imx-ipuv3 imx-ipuv3.0: ERR:[0xba25e600] no-0x240 state: ipu busy

imx-ipuv3 imx-ipuv3.0: ERR: [0xba25e600] no-0x240,state 8: ipu busy

NOW IS PALNOW IS PAL

imx-ipuv3 imx-ipuv3.0: ERR: no-0x240,ipu_queue_task err:-125

mxc_v4l2_output mxc_v4l2_output.0: display work fail ret = -125

VIDIOC_QBUF failed

imx-ipuv3 imx-ipuv3.0: handler already installed on irq 0

imx-ipuv3 imx-ipuv3.0: CSI irq 0 in use

20130708_190249.jpg

0 Kudos
5 Replies

1,147 Views
chuanyanyin
Contributor III

It seems nobody could fix this issue?

0 Kudos

1,147 Views
chuanyanyin
Contributor III

This is a photo you got from adv7180? It seems it works fine.

0 Kudos

1,147 Views
fuzhenlin
NXP Employee
NXP Employee

Hi Terry,

L3.0.35_4.0.0 should support HW accelerated de-interlacing in the V4L2 capture stream.

And the patch you apply is almost the same work in current BSP(ipu_csi_enc.c), so the IPU will busy in this case.

Basically, if you want to use that patch, I think you should disable the vdi related config in 4.0.0 mxc_v4l_capture driver.


BTW, you should check below error.

VIDIOC_G_FMT faild.


BRs,

Fuzhen

0 Kudos

1,147 Views
terrytan
Contributor I

Hello Lin,

First of all, I found that the VDI channel is initialized in source code file driver/mxc/ipu3/ipu_device.c

After tracing the source code, I found below: how to determine to the usage of VDI function.

If (t->input.deinterlace.enable) {

         t->set.mode &= ~IC_MODE;

         t->set.mode |= VDI_MODE;

}

However, I can’t find the assignment of the var “input.deinterlace.enable”,

So, I consider the kernel has implement the VDI function, but there is no driver use this function.

0 Kudos

1,147 Views
jotes
Contributor IV

Hello!

Have you solved this problem? I am struggling with the same issue.

It's true, that ipu_vdi_enc.c (from add-csi-deinterlace-capture patch) is similar to ipu_csi_enc.c, but these two modules are never used at the same time (in one mxc_v4l2_tvin test). So i have no idea what causes the problem.

Regards!

0 Kudos