Other Parts Discussed in Thread: TDA4VM
Tool/software:
Hi,
We ported the TP2855 driver to the TDA4VM on SDK 10.0, but only the first camera was working.
We expected four sinks to be mapped from pad1 to pad4 on ticsi2rx.
To address this, we modified j721e-ticsi2rx.c
and cdns-csi2rx.c
by adjusting the routing and increasing the number of routes from 1 to 4, mapping each accordingly.
Although this approach worked, we believe it is not the correct solution. How can we enable virtual channel support without modifying these source files?
root@j721e-iec:~# media-ctl -p Media controller API version 6.6.32 Media device information ------------------------ driver j721e-csi2rx model TI-CSI2RX serial bus info platform:4500000.ticsi2rx hw revision 0x1 driver version 6.6.32 Device topology - entity 1: 4500000.ticsi2rx (17 pads, 17 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/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "cdns_csi2rx.4504000.csi-bridge":1 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "4500000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE] pad2: Source -> "4500000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE] pad3: Source -> "4500000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE] pad4: Source -> "4500000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE] pad5: Source -> "4500000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE] pad6: Source -> "4500000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE] pad7: Source -> "4500000.ticsi2rx context 6":0 [ENABLED,IMMUTABLE] pad8: Source -> "4500000.ticsi2rx context 7":0 [ENABLED,IMMUTABLE] pad9: Source -> "4500000.ticsi2rx context 8":0 [ENABLED,IMMUTABLE] pad10: Source -> "4500000.ticsi2rx context 9":0 [ENABLED,IMMUTABLE] pad11: Source -> "4500000.ticsi2rx context 10":0 [ENABLED,IMMUTABLE] pad12: Source -> "4500000.ticsi2rx context 11":0 [ENABLED,IMMUTABLE] pad13: Source -> "4500000.ticsi2rx context 12":0 [ENABLED,IMMUTABLE] pad14: Source -> "4500000.ticsi2rx context 13":0 [ENABLED,IMMUTABLE] pad15: Source -> "4500000.ticsi2rx context 14":0 [ENABLED,IMMUTABLE] pad16: Source -> "4500000.ticsi2rx context 15":0 [ENABLED,IMMUTABLE] - entity 19: cdns_csi2rx.4504000.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/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "tp2855_des 1-0044":4 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "4500000.ticsi2rx":0 [ENABLED,IMMUTABLE] pad2: Source pad3: Source pad4: Source - entity 25: tp2855_des 1-0044 (5 pads, 5 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:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "tp2855_ser 1-0045":1 [ENABLED,IMMUTABLE] pad1: Sink <- "tp2855_ser 1-0046":1 [ENABLED,IMMUTABLE] pad2: Sink <- "tp2855_ser 1-0047":1 [ENABLED,IMMUTABLE] pad3: Sink <- "tp2855_ser 1-0048":1 [ENABLED,IMMUTABLE] pad4: Source [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "cdns_csi2rx.4504000.csi-bridge":0 [ENABLED,IMMUTABLE] - entity 33: tp2855_ser 1-0048 (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/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "tp2855_sensor 9-0021":0 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "tp2855_des 1-0044":3 [ENABLED,IMMUTABLE] - entity 38: tp2855_sensor 9-0021 (1 pad, 1 link, 2 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev4 routes: 0/0 -> 0/0 [ACTIVE] 0/0 -> 0/1 [ACTIVE] pad0: Source [stream:0 fmt:UYVY8_1X16/1280x720@1/30 field:none] [stream:1 fmt:UYVY8_1X16/1280x720@1/30 field:none] -> "tp2855_ser 1-0048":0 [ENABLED,IMMUTABLE] - entity 42: tp2855_ser 1-0047 (2 pads, 2 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev5 routes: 0/0 -> 1/0 [ACTIVE] pad0: Sink [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "tp2855_sensor 8-0021":0 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "tp2855_des 1-0044":2 [ENABLED,IMMUTABLE] - entity 47: tp2855_sensor 8-0021 (1 pad, 1 link, 2 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev6 routes: 0/0 -> 0/0 [ACTIVE] 0/0 -> 0/1 [ACTIVE] pad0: Source [stream:0 fmt:UYVY8_1X16/1280x720@1/30 field:none] [stream:1 fmt:UYVY8_1X16/1280x720@1/30 field:none] -> "tp2855_ser 1-0047":0 [ENABLED,IMMUTABLE] - entity 51: tp2855_ser 1-0046 (2 pads, 2 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev7 routes: 0/0 -> 1/0 [ACTIVE] pad0: Sink [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "tp2855_sensor 7-0021":0 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "tp2855_des 1-0044":1 [ENABLED,IMMUTABLE] - entity 56: tp2855_sensor 7-0021 (1 pad, 1 link, 2 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev8 routes: 0/0 -> 0/0 [ACTIVE] 0/0 -> 0/1 [ACTIVE] pad0: Source [stream:0 fmt:UYVY8_1X16/1280x720@1/30 field:none] [stream:1 fmt:UYVY8_1X16/1280x720@1/30 field:none] -> "tp2855_ser 1-0046":0 [ENABLED,IMMUTABLE] - entity 60: tp2855_ser 1-0045 (2 pads, 2 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev9 routes: 0/0 -> 1/0 [ACTIVE] pad0: Sink [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "tp2855_sensor 6-0021":0 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "tp2855_des 1-0044":0 [ENABLED,IMMUTABLE] - entity 65: tp2855_sensor 6-0021 (1 pad, 1 link, 2 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev10 routes: 0/0 -> 0/0 [ACTIVE] 0/0 -> 0/1 [ACTIVE] pad0: Source [stream:0 fmt:UYVY8_1X16/1280x720@1/30 field:none] [stream:1 fmt:UYVY8_1X16/1280x720@1/30 field:none] -> "tp2855_ser 1-0045":0 [ENABLED,IMMUTABLE] - entity 71: 4500000.ticsi2rx context 0 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video2 pad0: Sink <- "4500000.ticsi2rx":1 [ENABLED,IMMUTABLE] - entity 77: 4500000.ticsi2rx context 1 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video3 pad0: Sink <- "4500000.ticsi2rx":2 [ENABLED,IMMUTABLE] - entity 83: 4500000.ticsi2rx context 2 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video4 pad0: Sink <- "4500000.ticsi2rx":3 [ENABLED,IMMUTABLE] - entity 89: 4500000.ticsi2rx context 3 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video5 pad0: Sink <- "4500000.ticsi2rx":4 [ENABLED,IMMUTABLE] - entity 95: 4500000.ticsi2rx context 4 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video6 pad0: Sink <- "4500000.ticsi2rx":5 [ENABLED,IMMUTABLE] - entity 101: 4500000.ticsi2rx context 5 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video7 pad0: Sink <- "4500000.ticsi2rx":6 [ENABLED,IMMUTABLE] - entity 107: 4500000.ticsi2rx context 6 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video8 pad0: Sink <- "4500000.ticsi2rx":7 [ENABLED,IMMUTABLE] - entity 113: 4500000.ticsi2rx context 7 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video9 pad0: Sink <- "4500000.ticsi2rx":8 [ENABLED,IMMUTABLE] - entity 119: 4500000.ticsi2rx context 8 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video10 pad0: Sink <- "4500000.ticsi2rx":9 [ENABLED,IMMUTABLE] - entity 125: 4500000.ticsi2rx context 9 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video11 pad0: Sink <- "4500000.ticsi2rx":10 [ENABLED,IMMUTABLE] - entity 131: 4500000.ticsi2rx context 10 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video12 pad0: Sink <- "4500000.ticsi2rx":11 [ENABLED,IMMUTABLE] - entity 137: 4500000.ticsi2rx context 11 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video13 pad0: Sink <- "4500000.ticsi2rx":12 [ENABLED,IMMUTABLE] - entity 143: 4500000.ticsi2rx context 12 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video14 pad0: Sink <- "4500000.ticsi2rx":13 [ENABLED,IMMUTABLE] - entity 149: 4500000.ticsi2rx context 13 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video15 pad0: Sink <- "4500000.ticsi2rx":14 [ENABLED,IMMUTABLE] - entity 155: 4500000.ticsi2rx context 14 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video16 pad0: Sink <- "4500000.ticsi2rx":15 [ENABLED,IMMUTABLE] - entity 161: 4500000.ticsi2rx context 15 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video17 pad0: Sink <- "4500000.ticsi2rx":16 [ENABLED,IMMUTABLE]