#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)
{ … }