#include <linux/hash.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/soc/qcom/smem.h>
#include <media/videobuf2-v4l2.h>
#include "core.h"
#include "hfi.h"
#include "hfi_helper.h"
#include "hfi_msgs.h"
#include "hfi_parser.h"
#define SMEM_IMG_VER_TBL …
#define VER_STR_SZ …
#define SMEM_IMG_OFFSET_VENUS …
static void event_seq_changed(struct venus_core *core, struct venus_inst *inst,
struct hfi_msg_event_notify_pkt *pkt)
{ … }
static void event_release_buffer_ref(struct venus_core *core,
struct venus_inst *inst,
struct hfi_msg_event_notify_pkt *pkt)
{ … }
static void event_sys_error(struct venus_core *core, u32 event,
struct hfi_msg_event_notify_pkt *pkt)
{ … }
static void
event_session_error(struct venus_core *core, struct venus_inst *inst,
struct hfi_msg_event_notify_pkt *pkt)
{ … }
static void hfi_event_notify(struct venus_core *core, struct venus_inst *inst,
void *packet)
{ … }
static void hfi_sys_init_done(struct venus_core *core, struct venus_inst *inst,
void *packet)
{ … }
static void
sys_get_prop_image_version(struct venus_core *core,
struct hfi_msg_sys_property_info_pkt *pkt)
{ … }
static void hfi_sys_property_info(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_sys_rel_resource_done(struct venus_core *core,
struct venus_inst *inst,
void *packet)
{ … }
static void hfi_sys_ping_done(struct venus_core *core, struct venus_inst *inst,
void *packet)
{ … }
static void hfi_sys_idle_done(struct venus_core *core, struct venus_inst *inst,
void *packet)
{ … }
static void hfi_sys_pc_prepare_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static unsigned int
session_get_prop_profile_level(struct hfi_msg_session_property_info_pkt *pkt,
struct hfi_profile_level *profile_level)
{ … }
static unsigned int
session_get_prop_buf_req(struct hfi_msg_session_property_info_pkt *pkt,
struct hfi_buffer_requirements *bufreq)
{ … }
static void hfi_session_prop_info(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_init_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_load_res_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_flush_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_etb_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_ftb_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_start_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_stop_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_rel_res_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_rel_buf_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_end_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_abort_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
static void hfi_session_get_seq_hdr_done(struct venus_core *core,
struct venus_inst *inst, void *packet)
{ … }
struct hfi_done_handler { … };
static const struct hfi_done_handler handlers[] = …;
void hfi_process_watchdog_timeout(struct venus_core *core)
{ … }
static struct venus_inst *to_instance(struct venus_core *core, u32 session_id)
{ … }
u32 hfi_process_msg_packet(struct venus_core *core, struct hfi_pkt_hdr *hdr)
{ … }