Problems filling MIPI registers to capture again after other capture IMX8MN

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

Problems filling MIPI registers to capture again after other capture IMX8MN

Jump to solution
256 Views
s_arevalo
Contributor III

Hello all,

I'm developing the driver for the IMX715 image sensor in a custom board based on IMX8MN processor to capture with 4 lanes, 720Mbps to obtain RAW10 output frames.

I'm able to get a first capture correctly, where the MIPI register get information. In this case, the MIPI enables and disables the stream. 

However, when I try to capture again, the capture process does not finish and registers are empty as follows.

# v4l2-ctl -d /dev/video0 --set-fmt-video=width=3864,height=2192,pixelformat='BA10' --stream-mmap --verbose --stream-count=1 --stream-to=/home/root/frame.raw
[  581.821868] imx715_s_power: On 1 Streaming: 0
VIDIOC_QUERYCAP: ok[  581.826702] isi-capture 32e20000.isi:cap_device: mxc_isi_cap_g_fmt_mplane

[  581.834994] mxc_isi_cap_g_fmt_mplane: 865 width 3864 height 2192 num_planes 1
[  581.842352] mxc_isi_cap_g_fmt_mplane: 870 plane 0 bytesperline 7728 sizeimage 16939776
VIDIOC_G_FMT: ok[  581.850415] mxc_isi_cap_s_fmt_mplane: 1009: height 2192 width 3864

[  581.850419] mxc_isi_cap_s_fmt_mplane: 1027: sizeimage 16939776
[  581.858026] mxc_isi_cap_s_fmt_mplane: 1028: sizeimage 7728
VIDIOC_S_FMT: ok
Format Video Capture Multiplanar:
        Width/Height      : 3864/2192
        Pixel Format      : 'BA10' (10-bit Bayer GRGR/BGBG)
        Field             : None
        Number of planes  : 1
        Flags             :
        Colorspace        : Raw
        Transfer Function : Default
        YCbCr/HSV Encoding: Default
        Quantization      : Default
        Plane 0           :
           Bytes per Line : 7728
           Size Image     : 16939776
[  581.864056] mxc_isi_cap_s_fmt_mplane: 1040: bytesperline 7728 sizeimage 16939776
[  581.920017] alloc_contig_range: [79500, 7a528) PFNs busy
[  581.939355] alloc_contig_range: [79600, 7a628) PFNs busy
[  581.948100] alloc_contig_range: [79600, 7a728) PFNs busy
[  581.956790] alloc_contig_range: [79800, 7a828) PFNs busy
[  581.965149] alloc_contig_range: [79800, 7a928) PFNs busy
[  581.973491] alloc_contig_range: [79800, 7aa28) PFNs busy
[  581.981942] alloc_contig_range: [79800, 7ab28) PFNs busy
[  581.990505] alloc_contig_range: [79800, 7ac28) PFNs busy
[  581.998899] alloc_contig_range: [79800, 7ad28) PFNs busy
[  582.007163] alloc_contig_range: [79800, 7ae28) PFNs busy
[  582.037306] isi-capture 32e20000.isi:cap_device: mxc_isi_cap_g_fmt_mplane
[  582.044160] mxc_isi_cap_g_fmt_mplane: 865 width 3864 height 2192 num_planes 1
[  582.053073] mxc_isi_cap_g_fmt_mplane: 870 plane 0 bytesperline 7728 sizeimage 16939776
[  582.062364] mxc-mipi-csi2.0: mipi_csis_set_fmt
[  582.067299] call_get_fmt: 162 ++++++++++++++
[  582.067318] mxc-mipi-csi2.0: mipi_csis_get_fmt
[  582.076501] call_get_fmt: 162 ++++++++++++++
[  582.076527] imx715_get_pad_format width 3864 height 2192 field 1
[  582.087840] mxc-mipi-csi2.0: mipi_csis_get_fmt width 3864 height 2192 colorspace 0
[  582.096289] isi-capture 32e20000.isi:cap_device: mxc_isi_get_src_fmt: MEDIA_BUS_FMT_SGRBG10_1X10
[  582.110940] bypass csc
[  582.113649] input fmt BA10
[  582.116546] output fmt BA10
[  582.119692] mxc-isi 32e20000.isi: INTERFACE_MIPI0_CSI2
[  582.982126] mxc-mipi-csi2.0: mipi_csis_s_stream: 1, state: 0x0
[  583.052909] mxc-mipi-csi2.0: --- mipi_csis_s_stream ---
[  583.058529] mxc-mipi-csi2.0:         CSIS_VERSION[0]: 0x00000000
[  583.066173] mxc-mipi-csi2.0:        CSIS_CMN_CTRL[4]: 0x00000000
[  583.072846] mxc-mipi-csi2.0:        CSIS_CLK_CTRL[8]: 0x00000000
[  583.079845] mxc-mipi-csi2.0:          CSIS_INTMSK[10]: 0x00000000
[  583.086363] mxc-mipi-csi2.0:          CSIS_INTSRC[14]: 0x00000000
[  583.092735] mxc-mipi-csi2.0:      CSIS_DPHYSTATUS[20]: 0x00000000
[  583.099328] mxc-mipi-csi2.0:        CSIS_DPHYCTRL[24]: 0x00000000
[  583.105756] mxc-mipi-csi2.0:     CSIS_DPHYBCTRL_L[30]: 0x00000000
[  583.112260] mxc-mipi-csi2.0:     CSIS_DPHYBCTRL_H[34]: 0x00000000
[  583.118584] mxc-mipi-csi2.0:     CSIS_DPHYSCTRL_L[38]: 0x00000000
[  583.124940] mxc-mipi-csi2.0:     CSIS_DPHYSCTRL_H[3c]: 0x00000000
[  583.131571] mxc-mipi-csi2.0:   CSIS_ISPCONFIG_CH0[40]: 0x00000000
[  583.138126] mxc-mipi-csi2.0:   CSIS_ISPCONFIG_CH1[50]: 0x00000000
[  583.144589] mxc-mipi-csi2.0:   CSIS_ISPCONFIG_CH2[60]: 0x00000000
[  583.150894] mxc-mipi-csi2.0:   CSIS_ISPCONFIG_CH3[70]: 0x00000000
[  583.157259] mxc-mipi-csi2.0:    CSIS_ISPRESOL_CH0[44]: 0x00000000
[  583.163686] mxc-mipi-csi2.0:    CSIS_ISPRESOL_CH1[54]: 0x00000000
[  583.170101] mxc-mipi-csi2.0:    CSIS_ISPRESOL_CH2[64]: 0x00000000
[  583.176498] mxc-mipi-csi2.0:    CSIS_ISPRESOL_CH3[74]: 0x00000000
[  583.182869] mxc-mipi-csi2.0:     CSIS_ISPSYNC_CH0[48]: 0x00000000
[  583.189411] mxc-mipi-csi2.0:     CSIS_ISPSYNC_CH1[58]: 0x00000000
[  583.195938] mxc-mipi-csi2.0:     CSIS_ISPSYNC_CH2[68]: 0x00000000
[  583.202428] mxc-mipi-csi2.0:     CSIS_ISPSYNC_CH3[78]: 0x00000000
[  583.208802] mxc-mipi-csi2.0: --- mipi_csis_s_stream ---
[  583.214325] mxc-mipi-csi2.0:
[  583.217457] mxc-mipi-csi2.0: MIPI_CSIS_CMN_CTRL: 0x00000000
[  583.223317] mxc-mipi-csi2.0: LANE_NUMBER: 1
[  583.227684] mxc-mipi-csi2.0: CSI_EN: Disabled
[  583.232302] mxc-mipi-csi2.0: MIPI_CSIS_INTSRC: 0x00000000
[  583.237991] mxc-mipi-csi2.0: FRAME_START: -
[  583.242492] mxc-mipi-csi2.0: FRAME_END: -
[  583.246727] mxc-mipi-csi2.0: ERR_LOST_FS: -
[  583.251101] mxc-mipi-csi2.0: ERR_LOST_FE: -
[  583.255475] mxc-mipi-csi2.0: Start of transmission error lane: - - - -
[  583.262230] mxc-mipi-csi2.0: ERROR: - - - - -
[  583.266949] mxc-mipi-csi2.0: MIPI_CSIS_FRAME_COUNTER_CH0: 0
[  583.272845] mxc-mipi-csi2.0: MIPI_CSIS_DPHYSTATUS: 0x00000000
[  583.278937] mxc-mipi-csi2.0: Data Lane 0: Not ULPS
[  583.283940] mxc-mipi-csi2.0: Data Lane 1: Not ULPS
[  583.288955] mxc-mipi-csi2.0: Data Lane 2: Not ULPS
[  583.294134] mxc-mipi-csi2.0: Data Lane 3: Not ULPS
[  583.299889] mxc-mipi-csi2.0: Data Lane 0: Not Stop state
[  583.305619] mxc-mipi-csi2.0: Data Lane 1: Not Stop state
[  583.311295] mxc-mipi-csi2.0: Data Lane 2: Not Stop state
[  583.316807] mxc-mipi-csi2.0: Data Lane 3: Not Stop state
[  583.322313] mxc-mipi-csi2.0: ULPSCLK: Not ULPS
[  583.327093] mxc-mipi-csi2.0: STOPSTATECLK: Not Stop state
[  583.332771] mxc-mipi-csi2.0: --- mipi_csis_log_status_v2 ---

 

Thanks for your help

0 Kudos
1 Solution
221 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Dear @s_arevalo ,

 
The root cause is that the v4l2-ctl tool does not support abnormal exits. After CTRL+C operation, the /dev/video0 device is Not released, therefore an error will occur when running the command for the second time.
 
You can try the command ' /unit_tests/V4L2/mx8_v4l2_cap_drm.out -of ',  it's source code can be found in our linux bsp.
 
Example:
# ./mx8_v4l2_cap_drm.out -cam 1 -fmt YUYV -d "/dev/video4" -num 50 -of
 
Try it, please!
 
Thanks!
Regards,
weidong

View solution in original post

0 Kudos
3 Replies
236 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Dear @s_arevalo ,

 

1.  Resolution supported by i.MX8MN isi module.

imx8mn isi module supports max 2K resolution, you can test it starting 640x480, then 800x600,1280x800 etc.

2. About RAW10 data 

--Default linux bsp doesn't support RAW10 data capture.

--Have you already added the feature to isi driver?

If not, let me know.

3. About Linux bsp version

Could you please provide information of bsp version?

 

Thanks!

Regards,

weidong

0 Kudos
229 Views
s_arevalo
Contributor III

Hello @weidong_sun, thank you very much for four quick response. 

 

1.  Resolution supported by i.MX8MN isi module.

imx8mn isi module supports max 2K resolution, you can test it starting 640x480, then 800x600,1280x800 etc.

The resolution tha I am using is 3864x2192. All the frames that I manage to capture have this resolution.

The problem comes when I try to capture two frames in a row with the "v4l2-ctl" command, because I have to stop the second proccess with "^C". After this, it can be recaptured corectly and then start again.

2. About RAW10 data 

--Default linux bsp doesn't support RAW10 data capture.

--Have you already added the feature to isi driver?

Yes, I have added this feature to the ISI capture driver.

3. About Linux bsp version

Could you please provide information of bsp version?

I'm working with a Linux Yocto Project BSP 5.4.70_2.3.6 

 

Thanks,

Regards.

0 Kudos
222 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Dear @s_arevalo ,

 
The root cause is that the v4l2-ctl tool does not support abnormal exits. After CTRL+C operation, the /dev/video0 device is Not released, therefore an error will occur when running the command for the second time.
 
You can try the command ' /unit_tests/V4L2/mx8_v4l2_cap_drm.out -of ',  it's source code can be found in our linux bsp.
 
Example:
# ./mx8_v4l2_cap_drm.out -cam 1 -fmt YUYV -d "/dev/video4" -num 50 -of
 
Try it, please!
 
Thanks!
Regards,
weidong
0 Kudos