| /* SPDX-License-Identifier: GPL-2.0 */ | 
| /* | 
|  * Copyright (c) 2016 MediaTek Inc. | 
|  * Author: PoChun Lin <pochun.lin@mediatek.com> | 
|  */ | 
|   | 
| #ifndef _VENC_VPU_IF_H_ | 
| #define _VENC_VPU_IF_H_ | 
|   | 
| #include "mtk_vcodec_fw.h" | 
| #include "venc_drv_if.h" | 
|   | 
| /* | 
|  * struct venc_vpu_inst - encoder VPU driver instance | 
|  * @wq_hd: wait queue used for vpu cmd trigger then wait vpu interrupt done | 
|  * @signaled: flag used for checking vpu interrupt done | 
|  * @failure: flag to show vpu cmd succeeds or not | 
|  * @state: enum venc_ipi_msg_enc_state | 
|  * @bs_size: bitstream size for skip frame case usage | 
|  * @is_key_frm: key frame flag | 
|  * @inst_addr: VPU instance addr | 
|  * @vsi: driver structure allocated by VPU side and shared to AP side for | 
|  *     control and info share | 
|  * @id: the id of inter-processor interrupt | 
|  * @ctx: context for v4l2 layer integration | 
|  * @dev: device for v4l2 layer integration | 
|  */ | 
| struct venc_vpu_inst { | 
|     wait_queue_head_t wq_hd; | 
|     int signaled; | 
|     int failure; | 
|     int state; | 
|     int bs_size; | 
|     int is_key_frm; | 
|     unsigned int inst_addr; | 
|     void *vsi; | 
|     int id; | 
|     struct mtk_vcodec_ctx *ctx; | 
| }; | 
|   | 
| int vpu_enc_init(struct venc_vpu_inst *vpu); | 
| int vpu_enc_set_param(struct venc_vpu_inst *vpu, | 
|               enum venc_set_param_type id, | 
|               struct venc_enc_param *param); | 
| int vpu_enc_encode(struct venc_vpu_inst *vpu, unsigned int bs_mode, | 
|            struct venc_frm_buf *frm_buf, | 
|            struct mtk_vcodec_mem *bs_buf, | 
|            unsigned int *bs_size, | 
|            struct venc_frame_info *frame_info); | 
| int vpu_enc_deinit(struct venc_vpu_inst *vpu); | 
|   | 
| #endif |