Question about modified camera v4l2 driver for deserialize MAX9286

Hi. Sorry to bother you.
We are all beginner of camera v4l2 driver in TX1.Code modified from ov5693_v4l2.c.
We have connected camera path like as "Sony IMX224 → (MIPI/bayer)–>Sony 5700 ISP -->(Parallel/YUV422 8 bits)–>MAX96705(serializer)–>MAX9286 (deserializer MIPI)->TX1(MIPI);

when the configuration of MAX9286 corresponds to what you put in the config file of the tegra as follow:
static struct tegra_camera_platform_data
t210ref_max9286_solo_camera_platform_data = {
.flip_v = 0,
.flip_h = 0,
.port = TEGRA_CAMERA_PORT_CSI_E,
.lanes = 4,
.continuous_clk = 1,
};
we can capture one picture correctly, but there some errors, and the system si hang, such as:
[ 47.399144] vi vi: CSI 4 syncpt timeout, syncpt = 11, err = -11
[ 47.405224] vi vi: TEGRA_CSI_DEBUG_COUNTER 0x00000000
[ 47.410570] vi vi: TEGRA_CSI_CSI_CIL_STATUS 0x00000000
[ 47.415839] vi vi: TEGRA_CSI_CSI_CILX_STATUS 0x00000000
[ 47.422154] vi vi: TEGRA_CSI_PIXEL_PARSER_STATUS 0x00000000
[ 47.427731] vi vi: TEGRA_VI_CSI_ERROR_STATUS 0x00000008
[ 47.438623] vi vi: MW_ACK_DONE syncpoint time out!
[ 49.439159] vi vi: MW_ACK_DONE syncpoint time out!
[ 49.449539] smmu_dump_pagetable(): fault_address=0x00000000802541c0 pa=0x00000000000001c0 bytes=1000 #pte=170 in L2
[ 49.460417] mc-err: (18) csw_viw: EMEM decode error on PDE or PTE entry
[ 49.467080] mc-err: status = 0x60017072; addr = 0x802541c0
[ 49.472755] mc-err: secure: no, access-type: write, SMMU fault: nr-nw-s
[ 49.474428] hongwazi tegra_camera_start_streaming line:405 set width: 1280 height: 720 bytesperline:2560 colorspace:0 field:1 fourcc 1448695129 code 8200
[ 51.469066] vi vi: CSI 4 syncpt timeout, syncpt = 11, err = -11
[ 51.475144] vi vi: TEGRA_CSI_DEBUG_COUNTER 0x00000000
[ 51.984489] Host read timeout at address 5408193c
[ 51.985588] vi vi: TEGRA_CSI_CSI_CIL_STATUS 0xffffffff
[ 52.489733] vi vi: TEGRA_CSI_CSI_CILX_STATUS 0xffffffff
[ 52.993853] vi vi: TEGRA_CSI_PIXEL_PARSER_STATUS 0xffffffff
[ 53.498359] vi vi: TEGRA_VI_CSI_ERROR_STATUS 0xffffffff
[ 53.514226] vi vi: MW_ACK_DONE syncpoint time out!
[ 53.522877] smmu_dump_pagetable(): fault_address=0x0000000080200000 pa=0x0000000000000000 bytes=1000 #pte=170 in L2
[ 53.533351] mc-err: (18) csw_viw: EMEM decode error on PDE or PTE entry
[ 53.539993] mc-err: status = 0x60010072; addr = 0x80200000
[ 53.545650] mc-err: secure: no, access-type: write, SMMU fault: nr-nw-s
[ 53.552538] smmu_dump_pagetable(): fault_address=0x00000000803a14c0 pa=0x00000000000004c0 bytes=1000 #pte=170 in L2
[ 53.562996] mc-err: (18) csw_viw: EMEM decode error on PDE or PTE entry
[ 53.569636] mc-err: status = 0x60053072; addr = 0x803a14c0
[ 53.575295] mc-err: secure: no, access-type: write, SMMU fault: nr-nw-s

when the configuration of MAX9286 corresponds to what you put in the config file of the tegra as follow:
static struct tegra_camera_platform_data
t210ref_max9286_solo_camera_platform_data = {
.flip_v = 0,
.flip_h = 0,
.port = TEGRA_CAMERA_PORT_CSI_E,
.lanes = 4,
.continuous_clk = 0,
};

we can’t capture nothing, and there some errors, such as:

[ 101.574541] vi vi: CSI 4 syncpt timeout, syncpt = 11, err = -11
[ 101.580629] vi vi: TEGRA_CSI_DEBUG_COUNTER 0x00000000
[ 101.586070] vi vi: TEGRA_CSI_CSI_CIL_STATUS 0x00000010
[ 101.592455] vi vi: TEGRA_CSI_CSI_CILX_STATUS 0x00040041
[ 101.598796] vi vi: TEGRA_CSI_PIXEL_PARSER_STATUS 0x00000000
[ 101.604423] vi vi: TEGRA_VI_CSI_ERROR_STATUS 0x00000000
[ 103.575427] vi vi: MW_ACK_DONE syncpoint time out!
[ 103.606086] vi vi: CSI 4 syncpt timeout, syncpt = 11, err = -11
[ 103.612082] vi vi: TEGRA_CSI_DEBUG_COUNTER 0x00000000
[ 103.617224] vi vi: TEGRA_CSI_CSI_CIL_STATUS 0x00000000
[ 103.622366] vi vi: TEGRA_CSI_CSI_CILX_STATUS 0x00000000
[ 103.627649] vi vi: TEGRA_CSI_PIXEL_PARSER_STATUS 0x00000000
[ 103.633257] vi vi: TEGRA_VI_CSI_ERROR_STATUS 0x00000000
[ 105.606569] vi vi: MW_ACK_DONE syncpoint time out!
[ 105.636334] vi vi: CSI 4 syncpt timeout, syncpt = 11, err = -11
[ 105.642503] vi vi: TEGRA_CSI_DEBUG_COUNTER 0x00000000
[ 105.648783] vi vi: TEGRA_CSI_CSI_CIL_STATUS 0x00000000
[ 105.653918] vi vi: TEGRA_CSI_CSI_CILX_STATUS 0x00000000
[ 105.659152] vi vi: TEGRA_CSI_PIXEL_PARSER_STATUS 0x00000000
[ 105.664798] vi vi: TEGRA_VI_CSI_ERROR_STATUS 0x00000000
[ 107.637403] vi vi: MW_ACK_DONE syncpoint time out!
[ 107.668945] hongwazi tegra_camera_start_streaming line:405 set width: 1280 height: 720 bytesperline:2560 colorspace:0 field:1 fourcc 1448695129 code 8200
[ 109.678732] vi vi: CSI 4 syncpt timeout, syncpt = 11, err = -11
[ 110.187655] Host read timeout at address 54081a5c
[ 110.194850] vi vi: TEGRA_CSI_DEBUG_COUNTER 0xffffffff
[ 110.702604] Host read timeout at address 5408193c
[ 110.702622] vi vi: TEGRA_CSI_CSI_CIL_STATUS 0xffffffff
[ 111.205185] vi vi: TEGRA_CSI_CSI_CILX_STATUS 0xffffffff
[ 111.707702] vi vi: MW_ACK_DONE syncpoint time out!
[ 111.708783] vi vi: TEGRA_CSI_PIXEL_PARSER_STATUS 0xffffffff
[ 112.211277] vi vi: TEGRA_VI_CSI_ERROR_STATUS 0xffffffff

Please help to analyze the reasons for the above errors, and put forward some help and suggestions.Thank you.

The CSI/VI report some error status, that means your sensor output signal may have problem to capture frame.
You can reference to below topic to measure the MIPI signal to make it working.
https://devtalk.nvidia.com/default/topic/972192

Thank you,friends! The max9286 works well,now! I can see the right image!But the image is 5120720.I want to change it to 25601440!

Hi @haijun,

Are you using TX1? Have you tried using the same driver and setup in the TX2?

When you capture from the MAX9286 using 4 cameras and a resolution of 5120*720, what is the framerate you are getting and configuring in the driver?

Thanks,

  • CarlosR