This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

J722SXH01EVM: new camera not being enabled stream

Part Number: J722SXH01EVM

I have a j722sevkit.
The edge-ai image has been tested with ds90ub9702 + ds90ub953 +imx390 camera set.

It's my simple test method. 

root@j722s-evm:/opt/edgeai-gst-apps# v4l2-ctl -d /dev/video3   --stream-mmap   --stream-count=10
[ 9346.280230] ti_csi2rx_start_streaming
[ 9346.287360] ub960_get_frame_desc
[ 9346.290619] ub953_get_frame_desc start
[ 9346.294380] imx390_get_frame_desc
[ 9346.297702] ub953_get_frame_desc succ
[ 9346.301367] ub953_get_frame_desc start
[ 9346.305134] imx390_get_frame_desc
[ 9346.308459] ub953_get_frame_desc succ
[ 9346.312163] ti_csi2rx_sd_enable_streams sink = 2038676676
[ 9346.317571] csi2rx_enable_streams
[ 9346.321205] ub960_enable_streams
[ 9346.324546] ub953_get_frame_desc start
[ 9346.328306] imx390_get_frame_desc
[ 9346.331612] ub953_get_frame_desc succ
[ 9346.336688] ub953_enable_streams start
[ 9346.340444] imx390_set_stream
[ 9347.216285] imx390_set_stream succ!!
[ 9347.219873] ub953_enable_streams succ
<<<<<<<<<<

 

root@j722s-evm:/opt/edgeai-gst-apps# media-ctl -p
Media controller API version 6.12.17
[ 9329.377445] ub960_init_state

Media device information
------------------------
driver    [ 9329.383034] ub960 _ub960_set_routing
      j721e-csi2rx
model           TI-CSI2RX
[ 9329.392113] ub960 _ub960_set_routing succ

bus info        platform:30102000.ticsi2rx
hw revision     0x1[ 9329.401909] ub953_init_state

driver version  6.12.17

Device topology
- entity 1: 301020[ 9329.410246] imx390_set_routing
00.ticsi2rx (7 pads, 7 links, 1 route)
            type V4L2 su[ 9329.418707] imx390_get_frame_interval
bdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        routes:
                0/0 -> 2/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                -> "30102000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
        pad2: SOURCE
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "30102000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE]
        pad3: SOURCE
                -> "30102000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE]
        pad4: SOURCE
                -> "30102000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE]
        pad5: SOURCE
                -> "30102000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE]
        pad6: SOURCE
                -> "30102000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE]

- entity 9: cdns_csi2rx.30101000.csi-bridge (5 pads, 2 links, 1 route)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "ds90ub960 5-003d":4 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "30102000.ticsi2rx":0 [ENABLED,IMMUTABLE]
        pad2: SOURCE
        pad3: SOURCE
        pad4: SOURCE

- entity 15: ds90ub960 5-003d (6 pads, 2 links, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
        routes:
                0/0 -> 4/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "ds90ub953 5-0044":1 [ENABLED,IMMUTABLE]
        pad1: SINK
        pad2: SINK
        pad3: SINK
        pad4: SOURCE
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "cdns_csi2rx.30101000.csi-bridge":0 [ENABLED,IMMUTABLE]
        pad5: SOURCE

- entity 24: ds90ub953 5-0044 (2 pads, 2 links, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "imx390 10-001a":0 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "ds90ub960 5-003d":0 [ENABLED,IMMUTABLE]

- entity 29: imx390 10-001a (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev4
        pad0: SOURCE
                [stream:0 fmt:SRGGB12_1X12/1936x1100@1/30 field:none colorspace:smpte170m]
                -> "ds90ub953 5-0044":0 [ENABLED,IMMUTABLE]

- entity 35: 30102000.ticsi2rx context 0 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
        pad0: SINK
                <- "30102000.ticsi2rx":1 [ENABLED,IMMUTABLE]

- entity 41: 30102000.ticsi2rx context 1 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video3
        pad0: SINK
                <- "30102000.ticsi2rx":2 [ENABLED,IMMUTABLE]

- entity 47: 30102000.ticsi2rx context 2 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video4
        pad0: SINK
                <- "30102000.ticsi2rx":3 [ENABLED,IMMUTABLE]

- entity 53: 30102000.ticsi2rx context 3 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video5
        pad0: SINK
                <- "30102000.ticsi2rx":4 [ENABLED,IMMUTABLE]

- entity 59: 30102000.ticsi2rx context 4 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video6
        pad0: SINK
                <- "30102000.ticsi2rx":5 [ENABLED,IMMUTABLE]

- entity 65: 30102000.ticsi2rx context 5 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video7
        pad0: SINK
                <- "30102000.ticsi2rx":6 [ENABLED,IMMUTABLE]

 

 

There is a camera that comes in the yuv422 format.

The driver was made by referring to other sources to receive the frame with a custom board and camera.

root@j722s-evm:~# media-ctl -p
Media controller API version 6.12.17

Media device information
------------------------
driver          j721e-csi2rx
model           TI-CSI2RX
serial
bus info        platform:30102000.ticsi2rx
hw revision     0x1
driver version  6.12.17

Device topology
- entity 1: 30102000.ticsi2rx (7 pads, 7 links, 1 route)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                <- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                -> "30102000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
        pad2: SOURCE
                -> "30102000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE]
        pad3: SOURCE
                -> "30102000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE]
        pad4: SOURCE
                -> "30102000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE]
        pad5: SOURCE
                -> "30102000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE]
        pad6: SOURCE
                -> "30102000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE]

- entity 9: cdns_csi2rx.30101000.csi-bridge (5 pads, 2 links, 1 route)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                <- "max96714 3-0028":1 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                -> "30102000.ticsi2rx":0 [ENABLED,IMMUTABLE]
        pad2: SOURCE
        pad3: SOURCE
        pad4: SOURCE

- entity 15: max96714 3-0028 (2 pads, 2 links, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                <- "max96717 4-0040":1 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                -> "cdns_csi2rx.30101000.csi-bridge":0 [ENABLED,IMMUTABLE]

- entity 20: max96717 4-0040 (2 pads, 2 links, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                <- "vx1940 5-001b":0 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                [stream:0 fmt:UYVY8_1X16/2976x1440 field:none colorspace:rec709 ycbcr:601 quantization:lim-range]
                -> "max96714 3-0028":0 [ENABLED,IMMUTABLE]

- entity 25: vx1940 5-001b (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev4
        pad0: SOURCE
                [stream:0 fmt:UYVY8_1X16/2976x1440@1/30 field:none colorspace:rec709]
                -> "max96717 4-0040":0 [ENABLED,IMMUTABLE]

- entity 31: 30102000.ticsi2rx context 0 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
        pad0: SINK
                <- "30102000.ticsi2rx":1 [ENABLED,IMMUTABLE]

- entity 37: 30102000.ticsi2rx context 1 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video3
        pad0: SINK
                <- "30102000.ticsi2rx":2 [ENABLED,IMMUTABLE]

- entity 43: 30102000.ticsi2rx context 2 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video4
        pad0: SINK
                <- "30102000.ticsi2rx":3 [ENABLED,IMMUTABLE]

- entity 49: 30102000.ticsi2rx context 3 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video5
        pad0: SINK
                <- "30102000.ticsi2rx":4 [ENABLED,IMMUTABLE]

- entity 55: 30102000.ticsi2rx context 4 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video6
        pad0: SINK
                <- "30102000.ticsi2rx":5 [ENABLED,IMMUTABLE]

- entity 61: 30102000.ticsi2rx context 5 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video7
        pad0: SINK
                <- "30102000.ticsi2rx":6 [ENABLED,IMMUTABLE]

 

root@j722s-evm:~# v4l2-ctl -d /dev/video2   --stream-mmap   --stream-count=10
[   65.832190] ti_csi2rx_start_streaming idx = 0
[   65.843963] ti_csi2rx_start_streaming ret = -32
                VIDIOC_STREAMON returned -1 (Broken pipe)


Error Returned Source (j721e-csi2rx.c) :

static int ti_csi2rx_start_streaming(struct vb2_queue *vq, unsigned int count)
{
        struct ti_csi2rx_ctx *ctx = vb2_get_drv_priv(vq);
        struct ti_csi2rx_dev *csi = ctx->csi;
        struct ti_csi2rx_dma *dma = &ctx->dma;
        struct v4l2_subdev_krouting *routing;
        struct v4l2_subdev_route *route = NULL, *r;
        struct media_pad *remote_pad;
        unsigned long flags;
        int ret = 0;
        struct v4l2_subdev_state *state;

        printk("ti_csi2rx_start_streaming idx = %d\n", ctx->idx);
        ret = pm_runtime_resume_and_get(csi->dev);
        if (ret)
                return ret;

        spin_lock_irqsave(&dma->lock, flags);
        if (list_empty(&dma->queue))
                ret = -EIO;
        spin_unlock_irqrestore(&dma->lock, flags);
        if (ret)
                return ret;

        ret = video_device_pipeline_start(&ctx->vdev, &csi->pipe);
        if (ret) {
                printk("ti_csi2rx_start_streaming ret = %d\n", ret);
                goto err;
        }
 
 
There are three drivers I produced:
 max96714 (deserializer) + max96717 (serializer) + img-sensor(isp, yuv422 format)
enable_streams is not called.
When I checked the media-ctl command, there seemed to be no problem,
I'd appreciate your help.