drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h
Extension
.h
Size
7102 bytes
Lines
245
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct venc_ap_ipi_msg_init {
	uint32_t msg_id;
	uint32_t reserved;
	uint64_t venc_inst;
};

/**
 * struct venc_ap_ipi_msg_set_param - AP to VPU set_param cmd structure
 * @msg_id:	message id (AP_IPIMSG_XXX_ENC_SET_PARAM)
 * @vpu_inst_addr:	VPU encoder instance addr
 *			(struct venc_vp8_vsi/venc_h264_vsi *)
 * @param_id:	parameter id (venc_set_param_type)
 * @data_item:	number of items in the data array
 * @data:	data array to store the set parameters
 */
struct venc_ap_ipi_msg_set_param {
	uint32_t msg_id;
	uint32_t vpu_inst_addr;
	uint32_t param_id;
	uint32_t data_item;
	uint32_t data[8];
};

struct venc_ap_ipi_msg_set_param_ext {
	struct venc_ap_ipi_msg_set_param base;
	uint32_t data_ext[24];
};

/**
 * struct venc_ap_ipi_msg_enc - AP to VPU enc cmd structure
 * @msg_id:	message id (AP_IPIMSG_XXX_ENC_ENCODE)
 * @vpu_inst_addr:	VPU encoder instance addr
 *			(struct venc_vp8_vsi/venc_h264_vsi *)
 * @bs_mode:	bitstream mode for h264
 *		(H264_BS_MODE_SPS/H264_BS_MODE_PPS/H264_BS_MODE_FRAME)
 * @input_addr:	pointer to input image buffer plane
 * @bs_addr:	pointer to output bit stream buffer
 * @bs_size:	bit stream buffer size
 */
struct venc_ap_ipi_msg_enc {
	uint32_t msg_id;
	uint32_t vpu_inst_addr;
	uint32_t bs_mode;
	uint32_t input_addr[3];
	uint32_t bs_addr;
	uint32_t bs_size;
};

/**
 * struct venc_ap_ipi_msg_enc_ext - AP to SCP extended enc cmd structure
 *
 * @base:	base msg structure
 * @data_item:	number of items in the data array
 * @data:	data array to store the set parameters
 */
struct venc_ap_ipi_msg_enc_ext {
	struct venc_ap_ipi_msg_enc base;
	uint32_t data_item;
	uint32_t data[32];
};

/**
 * struct venc_ap_ipi_msg_enc_ext_34 - AP to SCP extended enc cmd structure
 * @msg_id:		message id (AP_IPIMSG_XXX_ENC_ENCODE)
 * @vpu_inst_addr:	VPU encoder instance addr
 * @bs_mode:		bitstream mode for h264
 * @reserved:		for struct padding
 * @input_addr:		input frame buffer 34 bit address
 * @bs_addr:		output bitstream buffer 34 bit address
 * @bs_size:		bitstream buffer size
 * @data_item:		number of items in the data array
 * @data:		data array to store the set parameters
 */
struct venc_ap_ipi_msg_enc_ext_34 {
	u32 msg_id;
	u32 vpu_inst_addr;
	u32 bs_mode;
	u32 reserved;
	u64 input_addr[3];
	u64 bs_addr;
	u32 bs_size;
	u32 data_item;
	u32 data[32];
};

/**
 * struct venc_ap_ipi_msg_deinit - AP to VPU deinit cmd structure
 * @msg_id:	message id (AP_IPIMSG_XXX_ENC_DEINIT)
 * @vpu_inst_addr:	VPU encoder instance addr
 *			(struct venc_vp8_vsi/venc_h264_vsi *)

Annotation

Implementation Notes