#include <linux/gcd.h>
#include <media/v4l2-mem2mem.h>
#include <media/v4l2-event.h>
#include <media/videobuf2-dma-contig.h>
#include "vdec_helpers.h"
#define NUM_CANVAS_NV12 …
#define NUM_CANVAS_YUV420 …
u32 amvdec_read_dos(struct amvdec_core *core, u32 reg)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_write_dos(struct amvdec_core *core, u32 reg, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_write_dos_bits(struct amvdec_core *core, u32 reg, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_clear_dos_bits(struct amvdec_core *core, u32 reg, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
u32 amvdec_read_parser(struct amvdec_core *core, u32 reg)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val)
{ … }
EXPORT_SYMBOL_GPL(…);
u32 amvdec_am21c_body_size(u32 width, u32 height)
{ … }
EXPORT_SYMBOL_GPL(…);
u32 amvdec_am21c_head_size(u32 width, u32 height)
{ … }
EXPORT_SYMBOL_GPL(…);
u32 amvdec_am21c_size(u32 width, u32 height)
{ … }
EXPORT_SYMBOL_GPL(…);
static int canvas_alloc(struct amvdec_session *sess, u8 *canvas_id)
{ … }
static int set_canvas_yuv420m(struct amvdec_session *sess,
struct vb2_buffer *vb, u32 width,
u32 height, u32 reg)
{ … }
static int set_canvas_nv12m(struct amvdec_session *sess,
struct vb2_buffer *vb, u32 width,
u32 height, u32 reg)
{ … }
int amvdec_set_canvases(struct amvdec_session *sess,
u32 reg_base[], u32 reg_num[])
{ … }
EXPORT_SYMBOL_GPL(…);
int amvdec_add_ts(struct amvdec_session *sess, u64 ts,
struct v4l2_timecode tc, u32 offset, u32 vbuf_flags)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_remove_ts(struct amvdec_session *sess, u64 ts)
{ … }
EXPORT_SYMBOL_GPL(…);
static void dst_buf_done(struct amvdec_session *sess,
struct vb2_v4l2_buffer *vbuf,
u32 field, u64 timestamp,
struct v4l2_timecode timecode, u32 flags)
{ … }
void amvdec_dst_buf_done(struct amvdec_session *sess,
struct vb2_v4l2_buffer *vbuf, u32 field)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_dst_buf_done_offset(struct amvdec_session *sess,
struct vb2_v4l2_buffer *vbuf,
u32 offset, u32 field, bool allow_drop)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_dst_buf_done_idx(struct amvdec_session *sess,
u32 buf_idx, u32 offset, u32 field)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_set_par_from_dar(struct amvdec_session *sess,
u32 dar_num, u32 dar_den)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_src_change(struct amvdec_session *sess, u32 width,
u32 height, u32 dpb_size)
{ … }
EXPORT_SYMBOL_GPL(…);
void amvdec_abort(struct amvdec_session *sess)
{ … }
EXPORT_SYMBOL_GPL(…);