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.
- 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
type_support.hia_css_types.hia_css_pipe_public.hia_css_metadata.hia_css_prbs.hia_css_input_port.h
Detected Declarations
struct ia_css_mipi_buffer_configstruct ia_css_stream_isys_stream_configstruct ia_css_stream_input_configstruct ia_css_stream_configstruct ia_css_streamstruct ia_css_stream_infoenum ia_css_input_mode
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
- Immediate include surface: `type_support.h`, `ia_css_types.h`, `ia_css_pipe_public.h`, `ia_css_metadata.h`, `ia_css_prbs.h`, `ia_css_input_port.h`.
- Detected declarations: `struct ia_css_mipi_buffer_config`, `struct ia_css_stream_isys_stream_config`, `struct ia_css_stream_input_config`, `struct ia_css_stream_config`, `struct ia_css_stream`, `struct ia_css_stream_info`, `enum ia_css_input_mode`.
- 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.