STRUCT TEGRA_VI_OPS(9)
β¨ struct tegra_vi_ops β Tegra VI operations β¨
okay so bestie, welcome to the struct tegra_vi_ops(9) page from the Kernel API Manual π
this is literally the little bundle of function pointers that tells the Tegra VI driver how to actually do stuff, and we're gonna walk through every single one of them. no skips, no shortcuts, no cap π«Ά
πΈ NAME πΈ
struct tegra_vi_ops β the Tegra VI operations, aka the vibe check for your video input peripheral π
π¦ SYNOPSIS π¦
here's the whole struct, bestie, copied exactly so you can trust it:
struct tegra_vi_ops {
int (*vi_enable)(struct tegra_vi *vi, bool on);
int (*channel_host1x_syncpt_init)(struct tegra_vi_channel *chan);
void (*channel_host1x_syncpt_free)(struct tegra_vi_channel *chan);
void (*vi_fmt_align)(struct v4l2_pix_format *pix, unsigned int bpp);
void (*channel_queue_setup)(struct tegra_vi_channel *chan);
int (*vi_start_streaming)(struct vb2_queue *vq, u32 count);
void (*vi_stop_streaming)(struct vb2_queue *vq);
};
look at it. it's giving "soc abstraction done right" πβ¨
π Members π
vi_enableβ the soc-specific operations you need to enable/disable the VI peripheral. think of it as the on/off switch, but make it per-soc πchannel_host1x_syncpt_initβ initialize synchronization points β¨channel_host1x_syncpt_freeβ free all synchronization points π¦ (yes, all of them, clean up after yourself, bestie)vi_fmt_alignβ modifypixto fit the hardware alignment requirements and fill image geometry. it literally tells your pix format to sit up straight and match what the hardware expects πchannel_queue_setupβ additional operations at the end ofvb2_ops::queue_setup. just a little extra somethin' at the finish line πvi_start_streamingβ starts media pipeline, subdevice streaming, sets up VI for capture and runs capture start and capture finish kthreads for capturing frames to buffer and returns them back. main character energy fr fr π₯ it's doing a lotvi_stop_streamingβ stops media pipeline and subdevice streaming and returns back any queued buffers. the graceful exit, iconic π
π SEE ALSO π
go read these next, iykyk:
- Kernel file
./drivers/staging/media/tegra-video/vi.hstruct tegra_vi_soc(9),struct tegra_vi(9),struct tegra_vi_channel(9),struct tegra_channel_buffer(9),struct tegra_video_format(9)
ok that's the whole page, no notes π«Ά go forth and stream some frames, bestie π
and before you go β this lil beauty came from ./drivers/staging/media/tegra-..., dated October 2026, and it's struct tegra_vi_ops(9) all the way down ππ§ββοΈ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms