Tool/software:
Platform: AM62P
sensor: four ISX031 (1920x1080 @25fps)nv12
SERDES:MAX92717+MAX96724
1)
As log log_ioctl.txt show:
when app call: enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
ret = ioctl(fd, VIDIOC_STREAMON, &type);
error occur in v4l2-subdev.c:
v4l2_subdev_enable_streams->
if (found_streams != streams_mask) {
dev_dbg(dev, "streams 0x%llx not found on %s:%u\n",
streams_mask & ~found_streams, sd->entity.name, pad);
ret = -EINVAL;
goto done;
}
// found_streams =0
// streams_mask =1
As the code show, I need to add stream_configs in my sensor dirver?
2) As log log_media-ctl.txt show:
only one route found in entity 9: cdns_csi2rx.30101000.csi-bridge.
(expect 4 route )
how to add route in app or kernel?
log_booting.txt [ 6.614865] <max96724> 1 max96724_probe [ 6.623494] remoteproc remoteproc1: attaching to 78000000.r5f [ 6.631966] <max96724> 1.1 devm_regmap_init_i2c [ 6.636475] platform 78000000.r5f: R5F core initialized in IPC-only mode [ 6.650801] rproc-virtio rproc-virtio.2.auto: assigned reserved memory node r5f-dma-memory@9c800000 [ 6.660359] <max96724> 1.2 max96724_reset [ 6.666174] virtio_rpmsg_bus virtio0: rpmsg host is online [ 6.666746] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xd [ 6.671834] rproc-virtio rproc-virtio.2.auto: registered virtio0 (type 7) [ 6.679450] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xe [ 6.689472] remoteproc remoteproc1: remote processor 78000000.r5f is now attached [ OK ] Reached target Socket Units. [ OK ] Reached target Hardware activated USB gadget. [ 6.756595] <max96724> 1.3 max96724_parse_dt [ 6.771123] <j721e-csi2rx> 0 ti_csi2rx_probe begin [ 6.771220] <max96724> max96724_parse_dt->fwnode_graph_get_endpoint_by_id [ 6.778037] <v4l2_device> v4l2_device_register vdec [ 6.790668] <j721e-csi2rx> 1 ti_csi2rx_v4l2_init [ 6.791528] <max96724>err: vep.nr_of_link_frequencies(0) != 1 [ 6.796230] <j721e-csi2rx> 1.1 media_device_init [ 6.796244] <j721e-csi2rx> 1.2 v4l2_device_register [ 6.796246] <v4l2_device> v4l2_device_register j721e-csi2rx [ 6.796252] <j721e-csi2rx> 1.3 media_device_register [ 6.806988] <max96724>err: force set link_freq = 800000000 [ 6.806988] [ 6.808990] <j721e-csi2rx> 1.4 v4l2_subdev_init [ 6.819478] <max96724> 1.4 max96724_mipi_configure [ 6.821268] <v4l2_subdev> v4l2_subdev_init [ 6.851882] <j721e-csi2rx> 1.5 media_entity_pads_init [ 6.858051] <mc-entity> media_entity_pads_init 30102000.ticsi2rx [ 6.865054] <j721e-csi2rx> 1.6 v4l2_subdev_init_finalize [ 6.871437] <j721e-csi2rx> v4l2_subdev_routing_validate V4L2_SUBDEV_ROUTING_ONLY_1_TO_1 [ 6.880342] <j721e-csi2rx> v4l2_subdev_set_routing_with_fmt MEDIA_BUS_FMT_UYYVYY8_0_5X24 [ 6.889391] <v4l2_subdev> v4l2_subdev_set_routing 30102000.ticsi2rx [ 6.896670] <v4l2_subdev> v4l2_subdev_init_stream_configs [ 6.903041] <j721e-csi2rx> 1.7 v4l2_device_register_subdev [ 6.909570] <v4l2_device> v4l2_device_register_subdev sd->entity.name:30102000.ticsi2rx [ 6.918472] <mc-device> media_device_register_entity 1 - 30102000.ticsi2rx [ 6.926254] <mc-entity> media_entity_pads_init (null) [ 6.933012] <mc-entity> media_entity_pads_init (null) [ 6.939630] <mc-entity> media_entity_pads_init (null) [ 6.946278] <mc-entity> media_entity_pads_init (null) [ 6.952967] <mc-entity> media_entity_pads_init (null) [ 6.959529] <mc-entity> media_entity_pads_init (null) [ 6.966358] max96724 1-0027: Fixed dependency cycle(s) with /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000 [ 6.976420] platform 30101000.csi-bridge: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/sensor@27 [ 7.017207] vdec 30210000.video-codec: Added wave5 driver with caps: 'ENCODE' 'DECODE' [ 7.025479] vdec 30210000.video-codec: Product Code: 0x521c [ 7.031667] vdec 30210000.video-codec: Firmware Revision: 320127 Starting Virtual Console Setup... [ 7.056697] <cdns-csi2rx> csi2rx_probe [ 7.062175] <cdns-csi2rx> csi2rx_probe->v4l2_subdev_init 30101000.csi-bridge [ 7.070533] <v4l2_subdev> v4l2_subdev_init [ 7.078922] <mc-entity> media_entity_pads_init cdns_csi2rx.30101000.csi-bridge [ 7.087084] <v4l2_subdev> v4l2_subdev_set_routing cdns_csi2rx.30101000.csi-bridge [ 7.095604] <v4l2_subdev> v4l2_subdev_init_stream_configs [ 7.102061] <v4l2_device> v4l2_device_register_subdev sd->entity.name:cdns_csi2rx.30101000.csi-bridge [ 7.112206] <mc-device> media_device_register_entity 2 - cdns_csi2rx.30101000.csi-bridge [ 7.121231] cdns-csi2rx 30101000.csi-bridge: Probed CSI2RX with 4/4 lanes, 4 streams, external D-PHY
log_ioctl.txt root@am62pxx-evm:/test# ./v4l2_test <v4l2_test> Oct 29 2024 06:01:44 Select Test Type: 1. media_test_query_cap 2. media_test_set_format 3. media_test_entity 4. media_test_pads 5. media_test_link 6. media_test_get_image 6 <medai_debug> media_test_get_image [ 25.710995] <j721e-csi2rx> ti_csi2rx_queue_setup [ 25.722197] videobuf2_common: [cap-00000000f115a713] __setup_offsets: buffer 0, plane 0 offset 0x00000000 [ 25.735928] videobuf2_common: [cap-00000000f115a713] __setup_offsets: buffer 1, plane 0 offset 0x001fb000 [ 25.751077] videobuf2_common: [cap-00000000f115a713] __setup_offsets: buffer 2, plane 0 offset 0x003f6000 [ 25.762355] videobuf2_common: [cap-00000000f115a713] __setup_offsets: buffer 3, plane 0 offset 0x005f1000 [ 25.771932] videobuf2_common: [cap-00000000f115a713] __vb2_queue_alloc: allocated 4 buffers, 1 plane(s) each [ 25.781920] videobuf2_common: [cap-00000000f115a713] vb2_mmap: buffer 0, plane 0 successfully mapped [ 25.796520] <j721e-csi2rx> ti_csi2rx_buffer_prepare ioctl VIDIOC_QBUF 0 [ 25.807155] videobuf2_common: [cap-00000000f115a713] vb2_core_qbuf: qbuf of buffer 0 succeeded ioctl VIDIOC_QUERYBUF 1 [ 25.817877] videobuf2_common: [cap-00000000f115a713] vb2_mmap: buffer 1, plane 0 successfully mapped [ 25.829241] <j721e-csi2rx> ti_csi2rx_buffer_prepare ioctl VIDIOC_QBUF 1 [ 25.835124] videobuf2_common: [cap-00000000f115a713] vb2_core_qbuf: qbuf of buffer 1 succeeded ioctl VIDIOC_QUERYBUF 2 [ 25.845852] videobuf2_common: [cap-00000000f115a713] vb2_mmap: buffer 2, plane 0 successfully mapped [ 25.857206] <j721e-csi2rx> ti_csi2rx_buffer_prepare ioctl VIDIOC_QBUF 2 [ 25.863099] videobuf2_common: [cap-00000000f115a713] vb2_core_qbuf: qbuf of buffer 2 succeeded ioctl VIDIOC_QUERYBUF 3 [ 25.873816] videobuf2_common: [cap-00000000f115a713] vb2_mmap: buffer 3, plane 0 successfully mapped [ 25.885180] <j721e-csi2rx> ti_csi2rx_buffer_prepare ioctl VIDIOC_QBUF 3 [ 25.891072] videobuf2_common: [cap-00000000f115a713] vb2_core_qbuf: qbuf of buffer 3 succeeded [ 25.901773] <vb2-v4l2> 2 vb2_streamon <medai_debug> ioctl VIDIOC_STREAMON [ 25.910356] <vb2-core> 2 vb2_core_streamon begin [ 25.920067] <vb2-core> 2.1 vb2_core_streamon->prepare_streaming [ 25.927017] <vb2-core> 2.2 vb2_core_streamon->vb2_start_streaming [ 25.934146] <vb2-core> 2.2.1 vb2_start_streaming->start_streaming [ 25.941271] <j721e-csi2rx> ti_csi2rx_start_streaming [ 25.950787] <mc-entity> media_pipeline_start begin [ 25.956480] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'30102000.ticsi2rx context 0' [ 25.967596] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 25.977848] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:1 pad'30102000.ticsi2rx' [ 25.988096] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'30102000.ticsi2rx' [ 25.998342] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 26.008645] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:1 pad'cdns_csi2rx.30101000.csi-bridge' [ 26.020115] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'cdns_csi2rx.30101000.csi-bridge' [ 26.031579] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 26.041835] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'max96724 1-0027' [ 26.051908] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:2 pad'30102000.ticsi2rx' [ 26.062154] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'30102000.ticsi2rx context 1' [ 26.073272] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 26.083519] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:3 pad'30102000.ticsi2rx' [ 26.093763] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'30102000.ticsi2rx context 2' [ 26.104874] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 26.115117] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:4 pad'30102000.ticsi2rx' [ 26.125363] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'30102000.ticsi2rx context 3' [ 26.136479] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 26.146729] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:5 pad'30102000.ticsi2rx' [ 26.156975] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'30102000.ticsi2rx context 4' [ 26.168087] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 26.178331] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:6 pad'30102000.ticsi2rx' [ 26.188575] <mc-entity> 2.1)media_pipeline_start->list_for_each_entry index:0 pad'30102000.ticsi2rx context 5' [ 26.199693] <mc-entity> 2.1.1) media_pipeline_start->for_each_media_entity_data_link->link_validate [ 26.209939] <mc-entity> media_pipeline_start end [ 26.215419] <max96724> max96724_get_frame_desc stream:0 dt:0 [ 26.221935] <max96724> max96724_get_frame_desc end [ 26.227627] <j721e-csi2rx> ti_csi2rx_start_streaming->v4l2_subdev_enable_streams [ 26.236228] <v4l2_subdev> v4l2_subdev_enable_streams pad:1 30102000.ticsi2rx streams_mask:0x1 [ 26.245782] <v4l2_subdev> found_streams(0x1) streams_mask(0x1) [ 26.252655] <j721e-csi2rx> ti_csi2rx_sd_enable_streams 30102000.ticsi2rx pad:1 [ 26.260767] <j721e-csi2rx> ti_csi2rx_sd_enable_streams->v4l2_subdev_enable_streams remote_pad->index:1 [ 26.271108] <v4l2_subdev> v4l2_subdev_enable_streams pad:1 cdns_csi2rx.30101000.csi-bridge streams_mask:0x1 [ 26.281877] <v4l2_subdev> found_streams(0x1) streams_mask(0x1) [ 26.288743] <cdns-csi2rx> 1) csi2rx_enable_streams cdns_csi2rx.30101000.csi-bridge pad:1 [ 26.297697] <cdns-csi2rx> 1.1) csi2rx_start [ 26.302823] <cdns-csi2rx> 1.1.1) csi2rx_start->csi2rx_configure_ext_dphy [ 26.310568] <cdns-csi2rx> csi2rx_configure_ext_dphy->v4l2_get_link_freq link_freq:800000000 [ 26.319948] <cdns-csi2rx> 1.1.1.1)csi2rx_configure_ext_dphy->phy_power_on [ 26.327860] <cdns-csi2rx> 1.1.1.2)csi2rx_configure_ext_dphy->phy_configure [ 26.336335] <cdns-csi2rx> 1.2) v4l2_subdev_enable_streams [ 26.342598] <v4l2_subdev> v4l2_subdev_enable_streams pad:0 max96724 1-0027 streams_mask:0x1 [ 26.351980] <v4l2_subdev> found_streams(0x0) streams_mask(0x1) [ 26.358848] <v4l2_subdev>err found_streams(0x0) != streams_mask(0x1) [ 26.366146] <cdns-csi2rx>err v4l2_subdev_enable_streams return -22 [ 26.373187] cdns-csi2rx 30101000.csi-bridge: Failed to start streams 0x1 on subdev [ 26.380749] <cdns-csi2rx> csi2rx_stop [ 26.395328] cdns-csi2rx 30101000.csi-bridge: Failed to stop streaming on pad0 [ 26.412479] cdns-csi2rx 30101000.csi-bridge: Failed to stop streaming on pad1 [ 26.429674] cdns-csi2rx 30101000.csi-bridge: Failed to stop streaming on pad2 [ 26.446826] cdns-csi2rx 30101000.csi-bridge: Failed to stop streaming on pad3 [ 26.454064] <j721e-csi2rx>err: ti_csi2rx_start_streaming->ti_csi2rx_dma_submit_pending return -22 [ 26.516635] <mc-entity> media_pipeline_stop [ 26.521732] videobuf2_common: [cap-00000000f115a713] vb2_start_streaming: driver refused to start streaming [ 26.531486] <vb2-core> 2.2 vb2_core_streamon begin->vb2_start_streaming return -22 VIDIOC_STREAMON IS ERROR! LINE:190 <medai_debug>err start_capture failed
log_media-ctl.txt root@am62pxx-evm:/test# media-ctl -p -d /dev/media0 Media controller API version 6.6.32 Media device information ------------------------ driver j721e-csi2rx model TI-CSI2RX serial bus info platform:30102000.ticsi2rx hw revision 0x1 driver version 6.6.32 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:UYYVYY8_0_5X24/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYYVYY8_0_5X24/1920x1080 field:none colorspace:srgb xfer:srgb 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:UYYVYY8_0_5X24/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "max96724 1-0027":0 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYYVYY8_0_5X24/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "30102000.ticsi2rx":0 [ENABLED,IMMUTABLE] pad2: Source pad3: Source pad4: Source - entity 15: max96724 1-0027 (1 pad, 1 link, 0 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev2 pad0: Source [stream:0 fmt:UYYVYY8_0_5X24/1920x1080 field:none colorspace:srgb] -> "cdns_csi2rx.30101000.csi-bridge":0 [ENABLED,IMMUTABLE] - entity 21: 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 27: 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 33: 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 39: 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 45: 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 51: 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]