drivers/staging/media/atomisp/pci/ia_css_pipe.h

Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/ia_css_pipe.h

File Facts

System
Linux kernel
Corpus path
drivers/staging/media/atomisp/pci/ia_css_pipe.h
Extension
.h
Size
5957 bytes
Lines
174
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 ia_css_preview_settings {
	struct ia_css_binary copy_binary;
	struct ia_css_binary preview_binary;
	struct ia_css_binary vf_pp_binary;

	/* 2401 only for these two - do we in fact use them for anything real */
	struct ia_css_frame *delay_frames[MAX_NUM_VIDEO_DELAY_FRAMES];
	struct ia_css_frame *tnr_frames[NUM_VIDEO_TNR_FRAMES];

	struct ia_css_pipe *copy_pipe;
	struct ia_css_pipe *capture_pipe;
};

#define IA_CSS_DEFAULT_PREVIEW_SETTINGS { \
	.copy_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.preview_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.vf_pp_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
}

struct ia_css_capture_settings {
	struct ia_css_binary copy_binary;
	/* we extend primary binary to multiple stages because in ISP2.6.1
	 * the computation load is too high to fit in one single binary. */
	struct ia_css_binary primary_binary[MAX_NUM_PRIMARY_STAGES];
	unsigned int num_primary_stage;
	struct ia_css_binary pre_isp_binary;
	struct ia_css_binary anr_gdc_binary;
	struct ia_css_binary post_isp_binary;
	struct ia_css_binary capture_pp_binary;
	struct ia_css_binary vf_pp_binary;
	struct ia_css_binary capture_ldc_binary;
	struct ia_css_binary *yuv_scaler_binary;
	struct ia_css_frame *delay_frames[MAX_NUM_VIDEO_DELAY_FRAMES];
	bool *is_output_stage;
	unsigned int num_yuv_scaler;
};

#define IA_CSS_DEFAULT_CAPTURE_SETTINGS { \
	.copy_binary		= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.primary_binary		= {IA_CSS_BINARY_DEFAULT_SETTINGS}, \
	.pre_isp_binary		= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.anr_gdc_binary		= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.post_isp_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.capture_pp_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.vf_pp_binary		= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.capture_ldc_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
}

struct ia_css_video_settings {
	struct ia_css_binary copy_binary;
	struct ia_css_binary video_binary;
	struct ia_css_binary vf_pp_binary;
	struct ia_css_binary *yuv_scaler_binary;
	struct ia_css_frame *delay_frames[MAX_NUM_VIDEO_DELAY_FRAMES];
	struct ia_css_frame *tnr_frames[NUM_VIDEO_TNR_FRAMES];
	struct ia_css_frame *vf_pp_in_frame;
	struct ia_css_pipe *copy_pipe;
	struct ia_css_pipe *capture_pipe;
	bool *is_output_stage;
	unsigned int num_yuv_scaler;
};

#define IA_CSS_DEFAULT_VIDEO_SETTINGS { \
	.copy_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.video_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
	.vf_pp_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
}

struct ia_css_yuvpp_settings {
	struct ia_css_binary copy_binary;
	struct ia_css_binary *yuv_scaler_binary;
	struct ia_css_binary *vf_pp_binary;
	bool *is_output_stage;
	unsigned int num_yuv_scaler;
	unsigned int num_vf_pp;
	unsigned int num_output;
};

#define IA_CSS_DEFAULT_YUVPP_SETTINGS { \
	.copy_binary	= IA_CSS_BINARY_DEFAULT_SETTINGS, \
}

struct osys_object;

struct ia_css_pipe {
	struct ia_css_pipe_config       config;
	struct ia_css_pipe_extra_config extra_config;
	struct ia_css_pipe_info         info;
	enum ia_css_pipe_id		mode;
	struct ia_css_shading_table	*shading_table;

Annotation

Implementation Notes