Nvcamerasrc, nvvidconv and VIC clock

I have a system where we are using multiple cameras, most of them coming in over CSI, and one of them being a 10-bit bayer.
We are using 28.1 and can’t update at the moment.

For the bayer camera we use nvcamerasrc and the others we user v4l2src and all seems to work fine for each camera.

We do various format conversions and scaling before encoding with omxh264enc. When using videoconvert and videoscale there is high CPU load, but we meet realtime.

I can see a significant CPU load drop when I convert the elements to nvvidconv. BUT, now we’re not meeting realtime.

I traced the problem down to a slow VIC clock. If I increase that to max it looks like we can meet better performance metrics and maintain a low CPU load.

I tested this with

echo 1 > /sys/kernel/debug/bpmp/debug/clk/vic/mrq_rate_locked
cat /sys/kernel/debug/bpmp/debug/clk/vic/max_rate > /sys/kernel/debug/bpmp/debug/clk/vic/rate

Since that method is really for debugging, how can I adjust the clock rate correctly? Is there a device tree entry that I should be using? Do I need to set the clock rate in some driver?


Try adjust the pix_clk_hz in device tree of the sensor mode scope.