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

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

File Facts

System
Linux kernel
Corpus path
drivers/staging/media/atomisp/pci/ia_css_stream_public.h
Extension
.h
Size
19917 bytes
Lines
554
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_mipi_buffer_config {
	unsigned int size_mem_words; /** The frame size in the system memory
					  words (32B) */
	bool contiguous;	     /** Allocated memory physically
					  contiguously or not. \deprecated{Will be false always.}*/
	unsigned int nof_mipi_buffers; /** The number of MIPI buffers required for this
					stream */
};

enum {
	IA_CSS_STREAM_ISYS_STREAM_0 = 0,
	IA_CSS_STREAM_DEFAULT_ISYS_STREAM_IDX = IA_CSS_STREAM_ISYS_STREAM_0,
	IA_CSS_STREAM_ISYS_STREAM_1,
	IA_CSS_STREAM_MAX_ISYS_STREAM_PER_CH
};

/* This is input data configuration for one MIPI data type. We can have
 *  multiple of this in one virtual channel.
 */
struct ia_css_stream_isys_stream_config {
	struct ia_css_resolution  input_res; /** Resolution of input data */
	enum atomisp_input_format format; /** Format of input stream. This data
					       format will be mapped to MIPI data
					       type internally. */
	int linked_isys_stream_id; /** default value is -1, other value means
							current isys_stream shares the same buffer with
							indicated isys_stream*/
	bool valid; /** indicate whether other fields have valid value */
};

struct ia_css_stream_input_config {
	struct ia_css_resolution  input_res; /** Resolution of input data */
	struct ia_css_resolution  effective_res; /** Resolution of input data.
							Used for CSS 2400/1 System and deprecated for other
							systems (replaced by input_effective_res in
							ia_css_pipe_config) */
	enum atomisp_input_format format; /** Format of input stream. This data
					       format will be mapped to MIPI data
					       type internally. */
	enum ia_css_bayer_order bayer_order; /** Bayer order for RAW streams */
};

/* Input stream description. This describes how input will flow into the
 *  CSS. This is used to program the CSS hardware.
 */
struct ia_css_stream_config {
	enum ia_css_input_mode    mode; /** Input mode */
	union {
		struct ia_css_input_port  port; /** Port, for sensor only. */
		struct ia_css_prbs_config prbs; /** PRBS configuration */
	} source; /** Source of input data */
	unsigned int	      channel_id; /** Channel on which input data
						   will arrive. Use this field
						   to specify virtual channel id.
						   Valid values are: 0, 1, 2, 3 */
	struct ia_css_stream_isys_stream_config
		isys_config[IA_CSS_STREAM_MAX_ISYS_STREAM_PER_CH];
	struct ia_css_stream_input_config input_config;

	/*
	 * Currently, Linux and Windows platforms interpret the binning_factor
	 * parameter differently. In Linux, the binning factor is expressed
	 * in the form 2^N * 2^N
	 */
	/* ISP2401 */
	unsigned int sensor_binning_factor; /** Binning factor used by sensor
						 to produce image data. This is
						 used for shading correction. */
	unsigned int pixels_per_clock; /** Number of pixels per clock, which can be
					    1, 2 or 4. */
	bool online; /** offline will activate RAW copy on SP, use this for
			  continuous capture. */
	/* ISYS2401 usage: ISP receives data directly from sensor, no copy. */
	unsigned int init_num_cont_raw_buf; /** initial number of raw buffers to
					     allocate */
	unsigned int target_num_cont_raw_buf; /** total number of raw buffers to
					     allocate */
	bool pack_raw_pixels; /** Pack pixels in the raw buffers */
	bool continuous; /** Use SP copy feature to continuously capture frames
			      to system memory and run pipes in offline mode */
	bool disable_cont_viewfinder; /** disable continuous viewfinder for ZSL use case */
	s32 flash_gpio_pin; /** pin on which the flash is connected, -1 for no flash */
	int left_padding; /** The number of input-formatter left-paddings, -1 for default from binary.*/
	struct ia_css_mipi_buffer_config
		mipi_buffer_config; /** mipi buffer configuration */
	struct ia_css_metadata_config
		metadata_config;     /** Metadata configuration. */
	bool ia_css_enable_raw_buffer_locking; /** Enable Raw Buffer Locking for HALv3 Support */
	bool lock_all;
	/** Lock all RAW buffers (true) or lock only buffers processed by

Annotation

Implementation Notes