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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
include/uapi/intel-ipu3.h
Detected Declarations
struct imgu_abi_acc_operationstruct imgu_abi_acc_process_lines_cmd_datastruct imgu_abi_shd_transfer_luts_set_datastruct imgu_abi_shd_grid_configstruct imgu_abi_shd_general_configstruct imgu_abi_shd_black_level_configstruct imgu_abi_shd_intra_frame_operations_datastruct imgu_abi_shd_configstruct imgu_abi_stripe_input_frame_resolutionstruct imgu_abi_stripesstruct imgu_abi_stripe_datastruct imgu_abi_input_feeder_datastruct imgu_abi_input_feeder_data_alignedstruct imgu_abi_input_feeder_data_per_stripestruct imgu_abi_input_feeder_configstruct imgu_abi_dvs_stat_grd_configstruct imgu_abi_dvs_stat_cfgstruct imgu_abi_dvs_stat_transfer_op_datastruct imgu_abi_dvs_stat_intra_frame_operations_datastruct imgu_abi_dvs_stat_configstruct imgu_abi_yuvp2_y_tm_lut_static_configstruct imgu_abi_osys_formatter_paramsstruct imgu_abi_osys_formatterstruct imgu_abi_osys_scaler_paramsstruct imgu_abi_osys_scalerstruct imgu_abi_osys_frame_paramsstruct imgu_abi_osys_framestruct imgu_abi_osys_stripestruct imgu_abi_osys_configstruct imgu_abi_bds_hor_ctrl0struct imgu_abi_bds_ptrn_arrstruct imgu_abi_bds_phase_entrystruct imgu_abi_bds_phase_arrstruct imgu_abi_bds_hor_ctrl1struct imgu_abi_bds_hor_ctrl2struct imgu_abi_bds_horstruct imgu_abi_bds_ver_ctrl0struct imgu_abi_bds_ver_ctrl1struct imgu_abi_bds_verstruct imgu_abi_bds_per_stripe_datastruct imgu_abi_bds_per_stripe_data_alignedstruct imgu_abi_bds_per_stripestruct imgu_abi_bds_configstruct imgu_abi_anr_search_configstruct imgu_abi_anr_stitch_configstruct imgu_abi_anr_tile2strm_configstruct imgu_abi_anr_configstruct imgu_abi_af_frame_size
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
- Immediate include surface: `include/uapi/intel-ipu3.h`.
- Detected declarations: `struct imgu_abi_acc_operation`, `struct imgu_abi_acc_process_lines_cmd_data`, `struct imgu_abi_shd_transfer_luts_set_data`, `struct imgu_abi_shd_grid_config`, `struct imgu_abi_shd_general_config`, `struct imgu_abi_shd_black_level_config`, `struct imgu_abi_shd_intra_frame_operations_data`, `struct imgu_abi_shd_config`, `struct imgu_abi_stripe_input_frame_resolution`, `struct imgu_abi_stripes`.
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.