Changing frame stride alignment on Jetson Nano 32.2

Hello,

Is it possible to change the frame stride alignment on Jetson Nano (32.2) from 64 to 32?
If possible - how ?

Some sensors (IMX297) have native frame width, which needs such alignment.

Greetings

You can change #define TEGRA_STRIDE_ALIGNMENT in kernel/nvidia/include/media/tegra_camera_core.h.

Thank you Greg,

You mean to set TEGRA_STRIDE_ALIGNMENT to 0, which disables the alignment requirements, is that right ?
Because at the moment TEGRA_STRIDE_ALIGNMENT is defined to 1. Surely we have 64-byte alignment on Nano 32.2.
I expected to see a value of 64, which should be changed to 32.

I may be mistaken but I thought you could change that to 64. I don’t believe that’s a boolean but I’d need to dig into the code more deeply to be certain.

Hello Nvidia,

Can you help me on this topic ?

hello plamenk,

Greg’s comment in comment #2 is correct.
you should modify the default stride settings in the tegra_camera_core.h header file if you’re going to specify the alignments.
then, VI driver will allocate the buffer accordingly.
for example,

<i>$l4t-r32.2/public_sources/kernel_src/kernel/nvidia/drivers/media/platform/tegra/camera/vi/channel.c</i>

int tegra_channel_init(struct tegra_channel *chan)
{
...
	chan->width_align = TEGRA_WIDTH_ALIGNMENT;
	chan->stride_align = TEGRA_STRIDE_ALIGNMENT;
	chan->height_align = TEGRA_HEIGHT_ALIGNMENT;

ideally, there’s tegra_channel_fmt_align() function to calculate the alignments by default.
please check the calculation results before modify the header file.
thanks