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.

Dependency Surface

Detected Declarations

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

Implementation Notes