drivers/staging/media/ipu3/ipu3-abi.h

Source file repositories/reference/linux-study-clean/drivers/staging/media/ipu3/ipu3-abi.h

File Facts

System
Linux kernel
Corpus path
drivers/staging/media/ipu3/ipu3-abi.h
Extension
.h
Size
61655 bytes
Lines
2012
Domain
Driver Families
Bucket
drivers/staging
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 imgu_abi_acc_operation {
	/*
	 * zero means on init,
	 * others mean upon receiving an ack signal from the BC acc.
	 */
	u8 op_indicator;
	u8 op_type;
} __packed;

struct imgu_abi_acc_process_lines_cmd_data {
	u16 lines;
	u8 cfg_set;
	u8 reserved;		/* Align to 4 bytes */
} __packed;

/* Bayer shading definitions */

struct imgu_abi_shd_transfer_luts_set_data {
	u8 set_number;
	u8 padding[3];
	imgu_addr_t rg_lut_ddr_addr;
	imgu_addr_t bg_lut_ddr_addr;
	u32 align_dummy;
} __packed;

struct imgu_abi_shd_grid_config {
	/* reg 0 */
	u32 grid_width:8;
	u32 grid_height:8;
	u32 block_width:3;
	u32 reserved0:1;
	u32 block_height:3;
	u32 reserved1:1;
	u32 grid_height_per_slice:8;
	/* reg 1 */
	s32 x_start:13;
	s32 reserved2:3;
	s32 y_start:13;
	s32 reserved3:3;
} __packed;

struct imgu_abi_shd_general_config {
	u32 init_set_vrt_offst_ul:8;
	u32 shd_enable:1;
	/* aka 'gf' */
	u32 gain_factor:2;
	u32 reserved:21;
} __packed;

struct imgu_abi_shd_black_level_config {
	/* reg 0 */
	s32 bl_r:12;
	s32 reserved0:4;
	s32 bl_gr:12;
	u32 reserved1:1;
	/* aka 'nf' */
	u32 normalization_shift:3;
	/* reg 1 */
	s32 bl_gb:12;
	s32 reserved2:4;
	s32 bl_b:12;
	s32 reserved3:4;
} __packed;

struct imgu_abi_shd_intra_frame_operations_data {
	struct imgu_abi_acc_operation
		operation_list[IMGU_ABI_SHD_MAX_OPERATIONS] __aligned(32);
	struct imgu_abi_acc_process_lines_cmd_data
		process_lines_data[IMGU_ABI_SHD_MAX_PROCESS_LINES] __aligned(32);
	struct imgu_abi_shd_transfer_luts_set_data
		transfer_data[IMGU_ABI_SHD_MAX_TRANSFERS] __aligned(32);
} __packed;

struct imgu_abi_shd_config {
	struct ipu3_uapi_shd_config_static shd __aligned(32);
	struct imgu_abi_shd_intra_frame_operations_data shd_ops __aligned(32);
	struct ipu3_uapi_shd_lut shd_lut __aligned(32);
} __packed;

struct imgu_abi_stripe_input_frame_resolution {
	u16 width;
	u16 height;
	u32 bayer_order;		/* enum ipu3_uapi_bayer_order */
	u32 raw_bit_depth;
} __packed;

/* Stripe-based processing */

struct imgu_abi_stripes {
	/* offset from start of frame - measured in pixels */

Annotation

Implementation Notes