Virtual Channels and CHANSEL_NOMATCH error behavior

My configuration utilizes virtual channels. I’ve noticed errors in the kernel debug log when I capture on only one of the two configured virtual channels available, relating to CHANSEL_NOMATCH. If I launch two captures at the same time for both of the channels, this error does NOT seem to appear. Is this something that can be safely ignored?

Capturing on /dev/video2 (virtual channel 0):

nvidia@tegra-ubuntu:/tmp/video$ sudo cat /sys/kernel/debug/tracing/trace | grep -i error
nvidia@tegra-ubuntu:/tmp/video$ v4l2-ctl -d /dev/video2 --set-fmt-video=width=1920,height=1080,pixelformat=RGB3 --stream-mmap --stream-count=1 --stream-to=ar0233-0.raw
<
nvidia@tegra-ubuntu:/tmp/video$ sudo cat /sys/kernel/debug/tracing/trace | grep -i error
     kworker/1:3-20167 [001] .... 24873.299488: rtcpu_vinotify_error: tstamp:777427430033 tag:CHANSEL_NOMATCH channel:0x50 frame:0 vi_tstamp:777427428786 data:0x00000489
     kworker/1:3-20167 [001] .... 24873.401472: rtcpu_vinotify_error: tstamp:777430679920 tag:CHANSEL_NOMATCH channel:0x50 frame:0 vi_tstamp:777430678618 data:0x00000489

No errors initially. The capture results in a CHANSEL_NOMATCH error for channel “0x50”.

Capturing on /dev/video6 (virtual channel 1):

nvidia@tegra-ubuntu:/tmp/video$ v4l2-ctl -d /dev/video6 --set-fmt-video=width=1920,height=1080,pixelformat=RGB3 --stream-mmap --stream-count=1 --stream-to=ar0233-0.raw
<
nvidia@tegra-ubuntu:/tmp/video$ sudo cat /sys/kernel/debug/tracing/trace | grep -i error
     kworker/1:3-20167 [001] .... 24873.299488: rtcpu_vinotify_error: tstamp:777427430033 tag:CHANSEL_NOMATCH channel:0x50 frame:0 vi_tstamp:777427428786 data:0x00000489
     kworker/1:3-20167 [001] .... 24873.401472: rtcpu_vinotify_error: tstamp:777430679920 tag:CHANSEL_NOMATCH channel:0x50 frame:0 vi_tstamp:777430678618 data:0x00000489
     kworker/1:3-20167 [001] .... 24881.461132: rtcpu_vinotify_error: tstamp:777682168551 tag:CHANSEL_NOMATCH channel:0x10 frame:0 vi_tstamp:777682167321 data:0x00000489
     kworker/1:3-20167 [001] .... 24881.563156: rtcpu_vinotify_error: tstamp:777685418375 tag:CHANSEL_NOMATCH channel:0x10 frame:0 vi_tstamp:777685417151 data:0x00000489

The capture results in a CHANSEL_NOMATCH error for channel “0x10”.

Capturing on both /dev/video2 and /dev/video6 at the same time:

nvidia@tegra-ubuntu:/tmp/video$ (v4l2-ctl -d /dev/video2 --set-fmt-video=width=1920,height=1080,pixelformat=RGB3 --stream-mmap --stream-count=20 --stream-to=ar0233-0.raw &) && (v4l2-ctl -d /dev/video6 --set-fmt-video=width=1920,height=1080,pixelformat=RGB3 --stream-mmap --stream-count=20 --stream-to=ar0233-0.raw)
<<<<<<<<<<<<<<<<<<<<< 9.70 fps
< 9.61 fps
<<<<<<<<<<<<<<<<< 9.31 fps

< 9.09 fps

nvidia@tegra-ubuntu:/tmp/video$ sudo cat /sys/kernel/debug/tracing/trace | grep -i error
     kworker/1:3-20167 [001] .... 24873.299488: rtcpu_vinotify_error: tstamp:777427430033 tag:CHANSEL_NOMATCH channel:0x50 frame:0 vi_tstamp:777427428786 data:0x00000489
     kworker/1:3-20167 [001] .... 24873.401472: rtcpu_vinotify_error: tstamp:777430679920 tag:CHANSEL_NOMATCH channel:0x50 frame:0 vi_tstamp:777430678618 data:0x00000489
     kworker/1:3-20167 [001] .... 24881.461132: rtcpu_vinotify_error: tstamp:777682168551 tag:CHANSEL_NOMATCH channel:0x10 frame:0 vi_tstamp:777682167321 data:0x00000489
     kworker/1:3-20167 [001] .... 24881.563156: rtcpu_vinotify_error: tstamp:777685418375 tag:CHANSEL_NOMATCH channel:0x10 frame:0 vi_tstamp:777685417151 data:0x00000489

No additional CHANSEL_NOMATCH errors emitted in this case.

Any ideas what’s causing this? Is it safe to ignore this issue?

Here’s my setup info:

  • 2x AR0233-based cameras, each equipped with a Maxim 9295A GMSL2 serializer
  • 1x Maxim 9296A GMSL2 Deserializer
  • AR0233 sensors output RGB888 @ 1920x1080
  • vi/isp/nvcsi rates are set to their max_rate. (See when get raw16 data through vc-id, corr_err: discarding frame 0, flags: 32, err_data 160)
  • Tracing is enabled. (Reference same link as above)
  • I’m using the following command to capture data frames: v4l2-ctl -d /dev/video2 --set-fmt-video=width=1920,height=1080,pixelformat=RGB3 --stream-mmap --stream-count=1 --stream-to=ar0233-0.raw

Thanks!
–tim

Did you set “embedded_metadata_height = 1” in your device tree?
Looks like you should remove this line for maybe this sensor didn’t output embedded data.

No, embedded_metadata_height = “0” in my device tree. I’ll try removing it completely and see what the effects are.

I completely removed “embedded_metadata_height” from the device tree. Capturing on a single channel still causes the “CHANSEL_NOMATCH” to be emitted.

Note that if I capture two channels at once (see my brief trace above), the error does not appear in the kernel debug trace.

From this symptom I think the problem should be the serdes output two channel data to the bus while you just capture one channel.

I think you are correct. Marking your response as a solution.