Dart imx6 interlaced pal (576i) over mipi is not working.

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

Dart imx6 interlaced pal (576i) over mipi is not working.

614 Views
theabyssover123
Contributor I

Hello there.

I use kernel 3.10.53 with dart imx6.

I try to receive 576i interlaced pal over mipi csi, but can`t get any data received.

I always get ERROR: v4l2_capture : mxc_v4l_dqueue timeout enc_counter 0.

Data is sent to i.Mx6 from NVP6324 AHD/PAL video reciever.

This is the configuration of sensor struct. And ioctl_g_ifparm function for setting interlaced mode.

nvp6324_data.sen.streamcap.capability = 0;
nvp6324_data.sen.streamcap.capturemode = 0;
nvp6324_data.sen.pix.pixelformat = V4L2_PIX_FMT_UYVY;    /* YUV422 */
nvp6324_data.std_id = V4L2_STD_ALL;  
nvp6324_data.sen.pix.width = 720;
nvp6324_data.sen.pix.height = 576;
nvp6324_data.sen.streamcap.timeperframe.denominator = 25;
nvp6324_data.sen.streamcap.timeperframe.numerator = 1;
nvp6324_data.sen.spix.top = 0;		
nvp6324_data.sen.spix.left = 0;
memset(p, 0, sizeof(*p));
p->if_type = V4L2_IF_TYPE_BT656; /* This is the only possibility. */
p->u.bt656.mode = V4L2_IF_TYPE_BT656_MODE_NOBT_8BIT;
p->u.bt656.clock_curr = 0;//BT656 interlace clock mode 1 - prorgressive 0 - interlaced
p->u.bt656.clock_max  = 27000000;
dev_info(&nvp6324_data.sen.i2c_client->dev, "nvp6324 interlaced ioctl_g_ifparm clock = %d\n" , p->u.bt656.clock_curr);

Here is the output from console.

nvp6324_mipi 0-0030: nvp6324 set power on
nvp6324_mipi 0-0030: ioctl_init
nvp6324_mipi 0-0030: ioctl_dev_init
nvp6324_mipi 0-0030: dphy status is: 300
nvp6324_mipi 0-0030: mipi csi2 error status is: 0
nvp6324_mipi 0-0030: Reg No Vid1: 0
nvp6324_mipi 0-0030: Reg No Vid2: 0
nvp6324_mipi 0-0030: Reg No Vid3: 0
nvp6324_mipi 0-0030: Reg No Vid4: 0
nvp6324_mipi 0-0030: Reg Agc lock1: 0
nvp6324_mipi 0-0030: Reg Agc lock2: 0
nvp6324_mipi 0-0030: Reg Agc lock3: 1
nvp6324_mipi 0-0030: Reg Agc lock4: 0
nvp6324_mipi 0-0030: Reg Clamp lock1: 0
nvp6324_mipi 0-0030: Reg Clamp lock2: 0
nvp6324_mipi 0-0030: Reg Clamp lock3: 1
nvp6324_mipi 0-0030: Reg Clamp lock4: 0
nvp6324_mipi 0-0030: Reg Hlock lock1: 0
nvp6324_mipi 0-0030: Reg Hlock lock2: 0
nvp6324_mipi 0-0030: Reg Hlock lock3: 1
nvp6324_mipi 0-0030: Reg Hlock lock4: 0
nvp6324_mipi 0-0030: nvp6324 ioctl_enum_framesizes w = 720 h = 625
nvp6324_mipi 0-0030: nvp6324 ioctl_g_parm
nvp6324_mipi 0-0030: nvp6324 V4L2_BUF_TYPE_VIDEO_CAPTURE ioctl_g_parm
nvp6324_mipi 0-0030: nvp6324 cparm->capability = 0 cparm->timeperframe.denominator = 25 cparm->timeperframe.numerator = 1 cparm->capturemode = 0
nvp6324_mipi 0-0030: nvp6324 ioctl_s_parm
nvp6324_mipi 0-0030: nvp6324 interlaced ioctl_g_ifparm clock = 0
nvp6324_mipi 0-0030: nvp6324 ioctl_g_fmt_cap
imx-ipuv3 2800000.ipu: CSI_SENS_CONF = 0x00000A30
imx-ipuv3 2800000.ipu: CSI_SENS_FRM_SIZE = 0x027002CF
imx-ipuv3 2800000.ipu: CSI_ACT_FRM_SIZE = 0x023F02CF
imx-ipuv3 2800000.ipu: CCSI_CCIR_CODE_1 = 0x01040596
imx-ipuv3 2800000.ipu: CSI_CCIR_CODE_1 = 0x000D07DF
imx-ipuv3 2800000.ipu: CSI_CCIR_CODE_1= 0x00FF0000
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:05.352170334   210  0x124eac0 WARN                     bin gstbin.c:2395:gst_bin_do_latency_func:<pipeline0> did not really configure latency of 0:00:00.000000000
New clock: GstSystemClock
ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
0:00:15.349449002   210  0x12436f0 ERROR             mfw_v4lsrc mfw_gst_v4lsrc.c:1243:mfw_gst_v4lsrc_buffer_new: >>V4L_SRC: VIDIOC_DQBUF failed.
0:00:15.349714668   210  0x12436f0 WARN                 basesrc gstbasesrc.c:2625:gst_base_src_loop:<mfwgstv4lsrc0> error: Internal data flow error.
0:00:15.349829335   210  0x12436f0 WARN                 basesrc gstbasesrc.c:2625:gst_base_src_loop:<mfwgstv4lsrc0> error: streaming task paused, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0:
streaming task paused, reason error (-5)
Execution ended after 9997886668 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
^Cimx-ipuv3 2800000.ipu: CSI stop timeout - 5 * 10ms
Caught interrupt -- nvp6324_mipi 0-0030: nvp6324 set power off
Setting pipeline to NULL ...
Freeing pipeline ...

When i am in interlaced mode, i can cat /dev/video0 and i see data coming. So it seems like incoming data is skipped somewhere after.

If i configure input like progressive (p->u.bt656.clock_curr = 1) , i am able to get input data and able to process is with gstreamer , but there are like 2 frames in line.  One fram at the top , and one frame at the bottom, divided in the middle. (Picture is attached).

I am struggling with this problem almost a week, tried kernel 4.1.15 and higher but no effect.

0 Kudos
Reply
1 Reply

601 Views
igorpadykov
NXP Employee
NXP Employee

Hi theabyssover123

 

may be useful to look at application note

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/iMX6-IPU-TVIN-Application-Notes/ta-p/112...

In general may be recommended to post it on vendor support portal https://www.variscite.com/support/

as this board was developed and supported by variscite.

 

Best regards
igor

0 Kudos
Reply