drivers/media/pci/intel/ipu6/ipu6-fw-isys.h
Source file repositories/reference/linux-study-clean/drivers/media/pci/intel/ipu6/ipu6-fw-isys.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/pci/intel/ipu6/ipu6-fw-isys.h- Extension
.h- Size
- 20589 bytes
- Lines
- 597
- Domain
- Driver Families
- Bucket
- drivers/media
- 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
linux/types.h
Detected Declarations
struct devicestruct ipu6_isysstruct ipu6_fw_isys_buffer_partition_abistruct ipu6_fw_isys_fw_configstruct ipu6_fw_isys_resolution_abistruct ipu6_fw_isys_output_pin_payload_abistruct ipu6_fw_isys_output_pin_info_abistruct ipu6_fw_isys_input_pin_info_abistruct ipu6_fw_isys_cropping_abistruct ipu6_fw_isys_stream_cfg_data_abistruct ipu6_fw_isys_frame_buff_set_abistruct ipu6_fw_isys_error_info_abistruct ipu6_fw_isys_resp_info_abistruct ipu6_fw_isys_proxy_error_info_abistruct ipu6_fw_isys_proxy_resp_info_abistruct ipu6_fw_proxy_write_queue_tokenstruct ipu6_fw_resp_queue_tokenstruct ipu6_fw_send_queue_tokenstruct ipu6_fw_proxy_resp_queue_tokenstruct ipu6_fw_proxy_send_queue_tokenenum ipu6_fw_isys_resp_typeenum ipu6_fw_isys_send_typeenum ipu6_fw_isys_queue_typeenum ipu6_fw_isys_stream_sourceenum ipu6_fw_isys_mipi_vcenum ipu6_fw_isys_frame_format_typeenum ipu6_fw_isys_pin_typeenum ipu6_fw_isys_mipi_store_modeenum ipu6_fw_isys_capture_modeenum ipu6_fw_isys_sensor_modeenum ipu6_fw_isys_errorenum ipu6_fw_proxy_error
Annotated Snippet
struct ipu6_fw_isys_buffer_partition_abi {
u32 num_gda_pages[IPU6_STREAM_ID_MAX];
};
struct ipu6_fw_isys_fw_config {
struct ipu6_fw_isys_buffer_partition_abi buffer_partition;
u32 num_send_queues[N_IPU6_FW_ISYS_QUEUE_TYPE];
u32 num_recv_queues[N_IPU6_FW_ISYS_QUEUE_TYPE];
};
/*
* struct ipu6_fw_isys_resolution_abi: Generic resolution structure.
*/
struct ipu6_fw_isys_resolution_abi {
u32 width;
u32 height;
};
/**
* struct ipu6_fw_isys_output_pin_payload_abi - ISYS output pin buffer
* @out_buf_id: Points to output pin buffer - buffer identifier
* @addr: Points to output pin buffer - CSS Virtual Address
* @compress: Request frame compression (1), or not (0)
*/
struct ipu6_fw_isys_output_pin_payload_abi {
u64 out_buf_id;
u32 addr;
u32 compress;
};
/**
* struct ipu6_fw_isys_output_pin_info_abi - ISYS output pin info
* @output_res: output pin resolution
* @stride: output stride in Bytes (not valid for statistics)
* @watermark_in_lines: pin watermark level in lines
* @payload_buf_size: minimum size in Bytes of all buffers that will be
* supplied for capture on this pin
* @ts_offsets: ts_offsets
* @s2m_pixel_soc_pixel_remapping: pixel soc remapping (see the definition of
* S2M_PIXEL_SOC_PIXEL_REMAPPING_FLAG_NO_REMAPPING)
* @csi_be_soc_pixel_remapping: see s2m_pixel_soc_pixel_remapping
* @send_irq: assert if pin event should trigger irq
* @input_pin_id: related input pin id
* @pt: pin type -real format "enum ipu6_fw_isys_pin_type"
* @ft: frame format type -real format "enum ipu6_fw_isys_frame_format_type"
* @reserved: a reserved field
* @reserve_compression: reserve compression resources for pin
* @snoopable: snoopable
* @error_handling_enable: enable error handling
* @sensor_type: sensor_type
*/
struct ipu6_fw_isys_output_pin_info_abi {
struct ipu6_fw_isys_resolution_abi output_res;
u32 stride;
u32 watermark_in_lines;
u32 payload_buf_size;
u32 ts_offsets[IPU6_PIN_PLANES_MAX];
u32 s2m_pixel_soc_pixel_remapping;
u32 csi_be_soc_pixel_remapping;
u8 send_irq;
u8 input_pin_id;
u8 pt;
u8 ft;
u8 reserved;
u8 reserve_compression;
u8 snoopable;
u8 error_handling_enable;
u32 sensor_type;
};
/**
* struct ipu6_fw_isys_input_pin_info_abi - ISYS input pin info
* @input_res: input resolution
* @dt: mipi data type ((enum ipu6_fw_isys_mipi_data_type)
* @mipi_store_mode: defines if legacy long packet header will be stored or
* discarded if discarded, output pin type for this
* input pin can only be MIPI
* (enum ipu6_fw_isys_mipi_store_mode)
* @bits_per_pix: native bits per pixel
* @mapped_dt: actual data type from sensor
* @mipi_decompression: defines which compression will be in mipi backend
* @crop_first_and_last_lines: Control whether to crop the first and last line
* of the input image. Crop done by HW device.
* @capture_mode: mode of capture, regular or burst, default value is regular
* @reserved: a reserved field
*/
struct ipu6_fw_isys_input_pin_info_abi {
struct ipu6_fw_isys_resolution_abi input_res;
u8 dt;
u8 mipi_store_mode;
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct device`, `struct ipu6_isys`, `struct ipu6_fw_isys_buffer_partition_abi`, `struct ipu6_fw_isys_fw_config`, `struct ipu6_fw_isys_resolution_abi`, `struct ipu6_fw_isys_output_pin_payload_abi`, `struct ipu6_fw_isys_output_pin_info_abi`, `struct ipu6_fw_isys_input_pin_info_abi`, `struct ipu6_fw_isys_cropping_abi`, `struct ipu6_fw_isys_stream_cfg_data_abi`.
- Atlas domain: Driver Families / drivers/media.
- 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.