Virtual Channel ID on TX2


We have some GMSL chips (MAX96705/MAX9286) working with Omnivision cameras (OV490) as described in our wiki [1].

Now that we can capture through GMSL I am thinking that it would be nice to extend the V4L2 driver to support Virtual Channel IDs, i.e, multiple cameras in one single physical port. I know this should be possible on TX2 only [2].

My idea is to extend the main V4L2 driver to capture and tag every frame captured with the Virtual Channel ID of the camera that produced the frame, in this way a framework like GStreamer and specifically v4l2src could push the frames for each camera on different pads according to the ID and source multiple pipelines.

The problem is that I am not sure what registers of Video Input (VI) I should change to enable the VCID and how the feature on TX2 actually works. Could someone at NVIDIA provide some guidance or documentation?



We may have plan to implement it in the future but I can’t tell when it could be ready.

Hi ShaneCC,

Great, and do you have any patch or documentation that I could use as starting point if I want to try implementing it meanwhile?


I think you can check the TRM first that’s what only we have for now.

Hi, Has there been any update on virtual channel support for the TX2?

New guy here… Has there been any progress for the virtual channel support for the TX2?

I am interested in this also - anything coming soon? I have a need for this in the next several months.

It is already supported in the latest Jetpack. We are porting our drivers to the latest Jetpack for our customers.


@David Which JetPack Version can support Virtual Channel ID?
What do you mean you porting driving for our customers?
Can we do this part of working by ourselves?

Jetpack 4.2 should have this support already and each virtual channel should appear as a /dev/videoX node. You can find the new Jetpack here:

We are porting our drivers to test the support. You can try doing it yourself


Hi DavidSoto:

I porting our drivers to jetpack 4.2. I have some problem, Can you help me?

I need the virtual channel, my gmsl ic is 9286/96705.
I write some drivers to support 9286/96705 and my cmos.
The result as below:
If I insert one camera, the output image is ok, the frame rate is 30.
If i insert two camera, the first camera(virtual channel 0) output image is ok, the frame rate is 30, the second camera(virtual channel 1) output image, but frame rate is 3.66 or 4.65 or others.
The two cameras are exactly the same. and the two cameras are ok.



Due some other tasks we had to put the task on hold but we will resume the task next week, I will let you know if we see the same problem and get back to you.