drivers/staging/media/atomisp/pci/runtime/binary/interface/ia_css_binary.h

Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/runtime/binary/interface/ia_css_binary.h

File Facts

System
Linux kernel
Corpus path
drivers/staging/media/atomisp/pci/runtime/binary/interface/ia_css_binary.h
Extension
.h
Size
7261 bytes
Lines
217
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_cas_binary_descr {
	unsigned int num_stage;
	unsigned int num_output_stage;
	struct ia_css_frame_info *in_info;
	struct ia_css_frame_info *internal_out_info;
	struct ia_css_frame_info *out_info;
	struct ia_css_frame_info *vf_info;
	bool *is_output_stage;
};

struct ia_css_binary_descr {
	int mode;
	bool online;
	bool continuous;
	bool striped;
	bool two_ppc;
	bool enable_yuv_ds;
	bool enable_high_speed;
	bool enable_dvs_6axis;
	bool enable_reduced_pipe;
	bool enable_dz;
	bool enable_xnr;
	bool enable_fractional_ds;
	bool enable_dpc;

	/* ISP2401 */
	bool enable_tnr;

	bool enable_capture_pp_bli;
	struct ia_css_resolution dvs_env;
	enum atomisp_input_format stream_format;
	struct ia_css_frame_info *in_info;		/* the info of the input-frame with the
							   ISP required resolution. */
	struct ia_css_frame_info *bds_out_info;
	struct ia_css_frame_info *out_info[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
	struct ia_css_frame_info *vf_info;
	unsigned int isp_pipe_version;
	unsigned int required_bds_factor;
	int stream_config_left_padding;
};

struct ia_css_binary {
	const struct ia_css_binary_xinfo *info;
	enum atomisp_input_format input_format;
	struct ia_css_frame_info in_frame_info;
	struct ia_css_frame_info internal_frame_info;
	struct ia_css_frame_info out_frame_info[IA_CSS_BINARY_MAX_OUTPUT_PORTS];
	struct ia_css_resolution effective_in_frame_res;
	struct ia_css_frame_info vf_frame_info;
	int                      input_buf_vectors;
	int                      deci_factor_log2;
	int                      vf_downscale_log2;
	int                      s3atbl_width;
	int                      s3atbl_height;
	int                      s3atbl_isp_width;
	int                      s3atbl_isp_height;
	unsigned int             morph_tbl_width;
	unsigned int             morph_tbl_aligned_width;
	unsigned int             morph_tbl_height;
	int                      sctbl_width_per_color;
	int                      sctbl_aligned_width_per_color;
	int                      sctbl_height;
	struct ia_css_sdis_info	 dis;
	struct ia_css_resolution dvs_envelope;
	bool                     online;
	unsigned int             uds_xc;
	unsigned int             uds_yc;
	unsigned int             left_padding;
	struct sh_css_binary_metrics metrics;
	struct ia_css_isp_param_host_segments mem_params;
	struct ia_css_isp_param_css_segments  css_params;
};

#define IA_CSS_BINARY_DEFAULT_SETTINGS { \
	.input_format		= ATOMISP_INPUT_FORMAT_YUV420_8_LEGACY, \
	.in_frame_info		= IA_CSS_BINARY_DEFAULT_FRAME_INFO, \
	.internal_frame_info	= IA_CSS_BINARY_DEFAULT_FRAME_INFO, \
	.out_frame_info		= {IA_CSS_BINARY_DEFAULT_FRAME_INFO}, \
	.vf_frame_info		= IA_CSS_BINARY_DEFAULT_FRAME_INFO, \
}

int
ia_css_binary_init_infos(void);

int
ia_css_binary_uninit(void);

int
ia_css_binary_fill_info(const struct ia_css_binary_xinfo *xinfo,
			bool online,

Annotation

Implementation Notes