#ifndef _AMPHION_VPU_RPC_H
#define _AMPHION_VPU_RPC_H
#include <media/videobuf2-core.h>
#include "vpu_codec.h"
struct vpu_rpc_buffer_desc { … };
struct vpu_shared_addr { … };
struct vpu_rpc_event_header { … };
struct vpu_rpc_event { … };
struct vpu_iface_ops { … };
enum { … };
struct vpu_rpc_region_t { … };
struct vpu_iface_ops *vpu_core_get_iface(struct vpu_core *core);
struct vpu_iface_ops *vpu_inst_get_iface(struct vpu_inst *inst);
int vpu_iface_check_memory_region(struct vpu_core *core, dma_addr_t addr, u32 size);
static inline bool vpu_iface_check_codec(struct vpu_core *core)
{ … }
static inline bool vpu_iface_check_format(struct vpu_inst *inst, u32 pixelfmt)
{ … }
static inline int vpu_iface_boot_core(struct vpu_core *core)
{ … }
static inline int vpu_iface_get_power_state(struct vpu_core *core)
{ … }
static inline int vpu_iface_shutdown_core(struct vpu_core *core)
{ … }
static inline int vpu_iface_restore_core(struct vpu_core *core)
{ … }
static inline int vpu_iface_on_firmware_loaded(struct vpu_core *core)
{ … }
static inline u32 vpu_iface_get_data_size(struct vpu_core *core)
{ … }
static inline int vpu_iface_init(struct vpu_core *core,
struct vpu_shared_addr *shared,
struct vpu_buffer *rpc,
dma_addr_t boot_addr)
{ … }
static inline int vpu_iface_set_log_buf(struct vpu_core *core,
struct vpu_buffer *log)
{ … }
static inline int vpu_iface_config_system(struct vpu_core *core, u32 regs_base, void __iomem *regs)
{ … }
static inline int vpu_iface_get_stream_buffer_size(struct vpu_core *core)
{ … }
static inline int vpu_iface_config_stream(struct vpu_inst *inst)
{ … }
static inline int vpu_iface_send_cmd(struct vpu_core *core, struct vpu_rpc_event *cmd)
{ … }
static inline int vpu_iface_receive_msg(struct vpu_core *core, struct vpu_rpc_event *msg)
{ … }
static inline int vpu_iface_pack_cmd(struct vpu_core *core,
struct vpu_rpc_event *pkt,
u32 index, u32 id, void *data)
{ … }
static inline int vpu_iface_convert_msg_id(struct vpu_core *core, u32 msg_id)
{ … }
static inline int vpu_iface_unpack_msg_data(struct vpu_core *core,
struct vpu_rpc_event *pkt, void *data)
{ … }
static inline int vpu_iface_input_frame(struct vpu_inst *inst,
struct vb2_buffer *vb)
{ … }
static inline int vpu_iface_config_memory_resource(struct vpu_inst *inst,
u32 type,
u32 index,
struct vpu_buffer *buf)
{ … }
static inline int vpu_iface_config_stream_buffer(struct vpu_inst *inst,
struct vpu_buffer *buf)
{ … }
static inline int vpu_iface_update_stream_buffer(struct vpu_inst *inst,
u32 ptr, bool write)
{ … }
static inline int vpu_iface_get_stream_buffer_desc(struct vpu_inst *inst,
struct vpu_rpc_buffer_desc *desc)
{ … }
static inline u32 vpu_iface_get_version(struct vpu_core *core)
{ … }
static inline u32 vpu_iface_get_max_instance_count(struct vpu_core *core)
{ … }
static inline int vpu_iface_set_encode_params(struct vpu_inst *inst,
struct vpu_encode_params *params, u32 update)
{ … }
static inline int vpu_iface_set_decode_params(struct vpu_inst *inst,
struct vpu_decode_params *params, u32 update)
{ … }
static inline int vpu_iface_add_scode(struct vpu_inst *inst, u32 scode_type)
{ … }
static inline int vpu_iface_pre_send_cmd(struct vpu_inst *inst)
{ … }
static inline int vpu_iface_post_send_cmd(struct vpu_inst *inst)
{ … }
static inline int vpu_iface_init_instance(struct vpu_inst *inst)
{ … }
#endif