190 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Copyright 2020-2021 NXP4 */5 6#ifndef _AMPHION_VPU_DEFS_H7#define _AMPHION_VPU_DEFS_H8 9enum MSG_TYPE {10 INIT_DONE = 1,11 PRC_BUF_OFFSET,12 BOOT_ADDRESS,13 COMMAND,14 EVENT,15};16 17enum {18 VPU_IRQ_CODE_BOOT_DONE = 0x55,19 VPU_IRQ_CODE_SNAPSHOT_DONE = 0xa5,20 VPU_IRQ_CODE_SYNC = 0xaa,21};22 23enum {24 VPU_CMD_ID_NOOP = 0x0,25 VPU_CMD_ID_CONFIGURE_CODEC,26 VPU_CMD_ID_START,27 VPU_CMD_ID_STOP,28 VPU_CMD_ID_ABORT,29 VPU_CMD_ID_RST_BUF,30 VPU_CMD_ID_SNAPSHOT,31 VPU_CMD_ID_FIRM_RESET,32 VPU_CMD_ID_UPDATE_PARAMETER,33 VPU_CMD_ID_FRAME_ENCODE,34 VPU_CMD_ID_SKIP,35 VPU_CMD_ID_PARSE_NEXT_SEQ,36 VPU_CMD_ID_PARSE_NEXT_I,37 VPU_CMD_ID_PARSE_NEXT_IP,38 VPU_CMD_ID_PARSE_NEXT_ANY,39 VPU_CMD_ID_DEC_PIC,40 VPU_CMD_ID_FS_ALLOC,41 VPU_CMD_ID_FS_RELEASE,42 VPU_CMD_ID_TIMESTAMP,43 VPU_CMD_ID_DEBUG44};45 46enum {47 VPU_MSG_ID_NOOP = 0x100,48 VPU_MSG_ID_RESET_DONE,49 VPU_MSG_ID_START_DONE,50 VPU_MSG_ID_STOP_DONE,51 VPU_MSG_ID_ABORT_DONE,52 VPU_MSG_ID_BUF_RST,53 VPU_MSG_ID_MEM_REQUEST,54 VPU_MSG_ID_PARAM_UPD_DONE,55 VPU_MSG_ID_FRAME_INPUT_DONE,56 VPU_MSG_ID_ENC_DONE,57 VPU_MSG_ID_DEC_DONE,58 VPU_MSG_ID_FRAME_REQ,59 VPU_MSG_ID_FRAME_RELEASE,60 VPU_MSG_ID_SEQ_HDR_FOUND,61 VPU_MSG_ID_RES_CHANGE,62 VPU_MSG_ID_PIC_HDR_FOUND,63 VPU_MSG_ID_PIC_DECODED,64 VPU_MSG_ID_PIC_EOS,65 VPU_MSG_ID_FIFO_LOW,66 VPU_MSG_ID_FIFO_HIGH,67 VPU_MSG_ID_FIFO_EMPTY,68 VPU_MSG_ID_FIFO_FULL,69 VPU_MSG_ID_BS_ERROR,70 VPU_MSG_ID_UNSUPPORTED,71 VPU_MSG_ID_TIMESTAMP_INFO,72 VPU_MSG_ID_FIRMWARE_XCPT,73 VPU_MSG_ID_PIC_SKIPPED,74 VPU_MSG_ID_DBG_MSG,75};76 77enum VPU_ENC_MEMORY_RESOURSE {78 MEM_RES_ENC,79 MEM_RES_REF,80 MEM_RES_ACT81};82 83enum VPU_DEC_MEMORY_RESOURCE {84 MEM_RES_FRAME,85 MEM_RES_MBI,86 MEM_RES_DCP87};88 89enum VPU_SCODE_TYPE {90 SCODE_PADDING_EOS = 1,91 SCODE_PADDING_BUFFLUSH = 2,92 SCODE_PADDING_ABORT = 3,93 SCODE_SEQUENCE = 0x31,94 SCODE_PICTURE = 0x32,95 SCODE_SLICE = 0x3396};97 98struct vpu_pkt_mem_req_data {99 u32 enc_frame_size;100 u32 enc_frame_num;101 u32 ref_frame_size;102 u32 ref_frame_num;103 u32 act_buf_size;104 u32 act_buf_num;105};106 107struct vpu_enc_pic_info {108 u32 frame_id;109 u32 pic_type;110 u32 skipped_frame;111 u32 error_flag;112 u32 psnr;113 u32 frame_size;114 u32 wptr;115 u32 crc;116 s64 timestamp;117 u32 average_qp;118};119 120struct vpu_dec_codec_info {121 u32 pixfmt;122 u32 num_ref_frms;123 u32 num_dpb_frms;124 u32 num_dfe_area;125 u32 color_primaries;126 u32 transfer_chars;127 u32 matrix_coeffs;128 u32 full_range;129 u32 vui_present;130 u32 progressive;131 u32 width;132 u32 height;133 u32 decoded_width;134 u32 decoded_height;135 struct v4l2_fract frame_rate;136 u32 dsp_asp_ratio;137 u32 level_idc;138 u32 bit_depth_luma;139 u32 bit_depth_chroma;140 u32 chroma_fmt;141 u32 mvc_num_views;142 u32 offset_x;143 u32 offset_y;144 u32 tag;145 u32 sizeimage[VIDEO_MAX_PLANES];146 u32 bytesperline[VIDEO_MAX_PLANES];147 u32 mbi_size;148 u32 dcp_size;149 u32 stride;150};151 152struct vpu_dec_pic_info {153 u32 id;154 u32 luma;155 u32 start;156 u32 end;157 u32 pic_size;158 u32 stride;159 u32 skipped;160 s64 timestamp;161 u32 consumed_count;162};163 164struct vpu_fs_info {165 u32 id;166 u32 type;167 u32 tag;168 u32 luma_addr;169 u32 luma_size;170 u32 chroma_addr;171 u32 chromau_size;172 u32 chromav_addr;173 u32 chromav_size;174 u32 bytesperline;175 u32 not_displayed;176};177 178struct vpu_ts_info {179 s64 timestamp;180 u32 size;181};182 183#define BITRATE_STEP (1024)184#define BITRATE_MIN (16 * BITRATE_STEP)185#define BITRATE_MAX (240 * 1024 * BITRATE_STEP)186#define BITRATE_DEFAULT (2 * 1024 * BITRATE_STEP)187#define BITRATE_DEFAULT_PEAK (BITRATE_DEFAULT * 2)188 189#endif190