#ifndef __HFI_H__
#define __HFI_H__
#include <linux/interrupt.h>
#include "hfi_helper.h"
#define VIDC_SESSION_TYPE_VPE …
#define VIDC_SESSION_TYPE_ENC …
#define VIDC_SESSION_TYPE_DEC …
#define VIDC_RESOURCE_NONE …
#define VIDC_RESOURCE_OCMEM …
#define VIDC_RESOURCE_VMEM …
struct hfi_buffer_desc { … };
struct hfi_frame_data { … };
hfi_get_property;
#define EVT_SYS_EVENT_CHANGE …
#define EVT_SYS_WATCHDOG_TIMEOUT …
#define EVT_SYS_ERROR …
#define EVT_SESSION_ERROR …
struct hfi_event_data { … };
#define CORE_UNINIT …
#define CORE_INIT …
#define INST_UNINIT …
#define INST_INIT …
#define INST_LOAD_RESOURCES …
#define INST_START …
#define INST_STOP …
#define INST_RELEASE_RESOURCES …
struct venus_core;
struct venus_inst;
struct hfi_core_ops { … };
struct hfi_inst_ops { … };
struct hfi_ops { … };
int hfi_create(struct venus_core *core, const struct hfi_core_ops *ops);
void hfi_destroy(struct venus_core *core);
void hfi_reinit(struct venus_core *core);
int hfi_core_init(struct venus_core *core);
int hfi_core_deinit(struct venus_core *core, bool blocking);
int hfi_core_suspend(struct venus_core *core);
int hfi_core_resume(struct venus_core *core, bool force);
int hfi_core_trigger_ssr(struct venus_core *core, u32 type);
int hfi_core_ping(struct venus_core *core);
int hfi_session_create(struct venus_inst *inst, const struct hfi_inst_ops *ops);
void hfi_session_destroy(struct venus_inst *inst);
int hfi_session_init(struct venus_inst *inst, u32 pixfmt);
int hfi_session_deinit(struct venus_inst *inst);
int hfi_session_start(struct venus_inst *inst);
int hfi_session_stop(struct venus_inst *inst);
int hfi_session_continue(struct venus_inst *inst);
int hfi_session_abort(struct venus_inst *inst);
int hfi_session_load_res(struct venus_inst *inst);
int hfi_session_unload_res(struct venus_inst *inst);
int hfi_session_flush(struct venus_inst *inst, u32 type, bool block);
int hfi_session_set_buffers(struct venus_inst *inst,
struct hfi_buffer_desc *bd);
int hfi_session_unset_buffers(struct venus_inst *inst,
struct hfi_buffer_desc *bd);
int hfi_session_get_property(struct venus_inst *inst, u32 ptype,
union hfi_get_property *hprop);
int hfi_session_set_property(struct venus_inst *inst, u32 ptype, void *pdata);
int hfi_session_process_buf(struct venus_inst *inst, struct hfi_frame_data *f);
irqreturn_t hfi_isr_thread(int irq, void *dev_id);
irqreturn_t hfi_isr(int irq, void *dev);
#endif