drivers/media/platform/qcom/venus/hfi_helper.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/qcom/venus/hfi_helper.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/qcom/venus/hfi_helper.h
Extension
.h
Size
36579 bytes
Lines
1303
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 hfi_buffer_info {
	u32 buffer_addr;
	u32 extradata_addr;
};

struct hfi_bitrate {
	u32 bitrate;
	u32 layer_id;
};

struct hfi_h264_8x8_transform {
	u32 enable_type;
};

#define HFI_CAPABILITY_FRAME_WIDTH			0x01
#define HFI_CAPABILITY_FRAME_HEIGHT			0x02
#define HFI_CAPABILITY_MBS_PER_FRAME			0x03
#define HFI_CAPABILITY_MBS_PER_SECOND			0x04
#define HFI_CAPABILITY_FRAMERATE			0x05
#define HFI_CAPABILITY_SCALE_X				0x06
#define HFI_CAPABILITY_SCALE_Y				0x07
#define HFI_CAPABILITY_BITRATE				0x08
#define HFI_CAPABILITY_BFRAME				0x09
#define HFI_CAPABILITY_PEAKBITRATE			0x0a
#define HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS		0x10
#define HFI_CAPABILITY_ENC_LTR_COUNT			0x11
#define HFI_CAPABILITY_CP_OUTPUT2_THRESH		0x12
#define HFI_CAPABILITY_HIER_B_NUM_ENH_LAYERS		0x13
#define HFI_CAPABILITY_LCU_SIZE				0x14
#define HFI_CAPABILITY_HIER_P_HYBRID_NUM_ENH_LAYERS	0x15
#define HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE		0x16
#define HFI_CAPABILITY_I_FRAME_QP			0x20
#define HFI_CAPABILITY_P_FRAME_QP			0x21
#define HFI_CAPABILITY_B_FRAME_QP			0x22
#define HFI_CAPABILITY_RATE_CONTROL_MODES		0x23
#define HFI_CAPABILITY_BLUR_WIDTH			0x24
#define HFI_CAPABILITY_BLUR_HEIGHT			0x25
#define HFI_CAPABILITY_SLICE_BYTE			0x27
#define HFI_CAPABILITY_SLICE_MB				0x28
#define HFI_CAPABILITY_MAX_VIDEOCORES			0x2b
#define HFI_CAPABILITY_MAX_WORKMODES			0x2c
#define HFI_CAPABILITY_ROTATION				0x2f
#define HFI_CAPABILITY_COLOR_SPACE_CONVERSION		0x30

struct hfi_capability {
	u32 capability_type;
	u32 min;
	u32 max;
	u32 step_size;
};

struct hfi_capabilities {
	u32 num_capabilities;
	struct hfi_capability data[];
};

#define HFI_DEBUG_MSG_LOW	0x01
#define HFI_DEBUG_MSG_MEDIUM	0x02
#define HFI_DEBUG_MSG_HIGH	0x04
#define HFI_DEBUG_MSG_ERROR	0x08
#define HFI_DEBUG_MSG_FATAL	0x10
#define HFI_DEBUG_MSG_PERF	0x20

#define HFI_DEBUG_MODE_QUEUE	0x01
#define HFI_DEBUG_MODE_QDSS	0x02

struct hfi_debug_config {
	u32 config;
	u32 mode;
};

struct hfi_ubwc_config {
	u32 size;
	u32 packet_type;
	struct {
		u32 max_channel_override : 1;
		u32 mal_length_override : 1;
		u32 hb_override : 1;
		u32 bank_swzl_level_override : 1;
		u32 bank_spreading_override : 1;
		u32 reserved : 27;
		} override_bit_info;
	u32 max_channels;
	u32 mal_length;
	u32 highest_bank_bit;
	u32 bank_swzl_level;
	u32 bank_spreading;
	u32 reserved[2];
};

Annotation

Implementation Notes