linux/drivers/media/platform/nvidia/tegra-vde/v4l2.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * NVIDIA Tegra Video decoder driver
 *
 * Copyright (C) 2019-2022 Dmitry Osipenko <[email protected]>
 *
 * Based on Cedrus driver by Bootlin.
 * Copyright (C) 2016 Florent Revest <[email protected]>
 * Copyright (C) 2018 Paul Kocialkowski <[email protected]>
 *
 * Based on Rockchip driver by Collabora.
 * Copyright (C) 2019 Boris Brezillon <[email protected]>
 */

#include <linux/err.h>
#include <linux/slab.h>

#include "vde.h"

static const struct v4l2_ctrl_config ctrl_cfgs[] =;

static inline struct tegra_ctx *fh_to_tegra_ctx(struct v4l2_fh *fh)
{}

static void tegra_set_control_data(struct tegra_ctx *ctx, void *data, u32 id)
{}

void tegra_vde_prepare_control_data(struct tegra_ctx *ctx, u32 id)
{}

static int tegra_queue_setup(struct vb2_queue *vq,
			     unsigned int *nbufs,
			     unsigned int *num_planes,
			     unsigned int sizes[],
			     struct device *alloc_devs[])
{}

static int tegra_buf_out_validate(struct vb2_buffer *vb)
{}

static void __tegra_buf_cleanup(struct vb2_buffer *vb, unsigned int i)
{}

static int tegra_buf_init(struct vb2_buffer *vb)
{}

static void tegra_buf_cleanup(struct vb2_buffer *vb)
{}

static int tegra_buf_prepare(struct vb2_buffer *vb)
{}

static void tegra_buf_queue(struct vb2_buffer *vb)
{}

static void tegra_buf_request_complete(struct vb2_buffer *vb)
{}

static int tegra_start_streaming(struct vb2_queue *vq, unsigned int count)
{}

static void tegra_stop_streaming(struct vb2_queue *vq)
{}

static const struct vb2_ops tegra_qops =;

static int tegra_queue_init(void *priv,
			    struct vb2_queue *src_vq,
			    struct vb2_queue *dst_vq)
{}

static void tegra_reset_fmt(struct tegra_ctx *ctx, struct v4l2_format *f,
			    u32 fourcc)
{}

static void tegra_reset_coded_fmt(struct tegra_ctx *ctx)
{}

static void tegra_fill_pixfmt_mp(struct v4l2_pix_format_mplane *pixfmt,
				 u32 pixelformat, u32 width, u32 height)
{}

static void tegra_reset_decoded_fmt(struct tegra_ctx *ctx)
{}

static void tegra_job_finish(struct tegra_ctx *ctx,
			     enum vb2_buffer_state result)
{}

static void tegra_decode_complete(struct work_struct *work)
{}

static int tegra_querycap(struct file *file, void *priv,
			  struct v4l2_capability *cap)
{}

static int tegra_enum_decoded_fmt(struct file *file, void *priv,
				  struct v4l2_fmtdesc *f)
{}

static int tegra_g_decoded_fmt(struct file *file, void *priv,
			       struct v4l2_format *f)
{}

static int tegra_try_decoded_fmt(struct file *file, void *priv,
				 struct v4l2_format *f)
{}

static int tegra_s_decoded_fmt(struct file *file, void *priv,
			       struct v4l2_format *f)
{}

static int tegra_enum_coded_fmt(struct file *file, void *priv,
				struct v4l2_fmtdesc *f)
{}

static int tegra_g_coded_fmt(struct file *file, void *priv,
			     struct v4l2_format *f)
{}

static const struct tegra_coded_fmt_desc *
tegra_find_coded_fmt_desc(struct tegra_ctx *ctx, u32 fourcc)
{}

static int tegra_try_coded_fmt(struct file *file, void *priv,
			       struct v4l2_format *f)
{}

static int tegra_s_coded_fmt(struct file *file, void *priv,
			     struct v4l2_format *f)
{}

static int tegra_enum_framesizes(struct file *file, void *priv,
				 struct v4l2_frmsizeenum *fsize)
{}

static const struct v4l2_ioctl_ops tegra_v4l2_ioctl_ops =;

static int tegra_init_ctrls(struct tegra_ctx *ctx)
{}

static int tegra_init_m2m(struct tegra_ctx *ctx)
{}

static int tegra_open(struct file *file)
{}

static int tegra_release(struct file *file)
{}

static const struct v4l2_file_operations tegra_v4l2_fops =;

static void tegra_device_run(void *priv)
{}

static const struct v4l2_m2m_ops tegra_v4l2_m2m_ops =;

static int tegra_request_validate(struct media_request *req)
{}

static const struct media_device_ops tegra_media_device_ops =;

int tegra_vde_v4l2_init(struct tegra_vde *vde)
{}

void tegra_vde_v4l2_deinit(struct tegra_vde *vde)
{}