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

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

File Facts

System
Linux kernel
Corpus path
drivers/staging/media/atomisp/pci/atomisp_compat.h
Extension
.h
Size
13154 bytes
Lines
382
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 atomisp_metadata_buf {
	struct ia_css_metadata *metadata;
	void *md_vptr;
	struct list_head list;
};

void atomisp_css2_hw_store_32(hrt_address addr, uint32_t data);
void atomisp_load_uint32(hrt_address addr, uint32_t *data);

int atomisp_css_init(struct atomisp_device *isp);

void atomisp_css_uninit(struct atomisp_device *isp);

void atomisp_css_init_struct(struct atomisp_sub_device *asd);

int atomisp_css_irq_translate(struct atomisp_device *isp,
			      unsigned int *infos);

void atomisp_css_rx_get_irq_info(enum mipi_port_id port,
				 unsigned int *infos);

void atomisp_css_rx_clear_irq_info(enum mipi_port_id port,
				   unsigned int infos);

int atomisp_css_irq_enable(struct atomisp_device *isp,
			   enum ia_css_irq_info info, bool enable);

int atomisp_q_video_buffer_to_css(struct atomisp_sub_device *asd,
				  struct ia_css_frame *frame,
				  enum atomisp_input_stream_id stream_id,
				  enum ia_css_buffer_type css_buf_type,
				  enum ia_css_pipe_id css_pipe_id);

int atomisp_q_s3a_buffer_to_css(struct atomisp_sub_device *asd,
				struct atomisp_s3a_buf *s3a_buf,
				enum atomisp_input_stream_id stream_id,
				enum ia_css_pipe_id css_pipe_id);

int atomisp_q_metadata_buffer_to_css(struct atomisp_sub_device *asd,
				     struct atomisp_metadata_buf *metadata_buf,
				     enum atomisp_input_stream_id stream_id,
				     enum ia_css_pipe_id css_pipe_id);

int atomisp_q_dis_buffer_to_css(struct atomisp_sub_device *asd,
				struct atomisp_dis_buf *dis_buf,
				enum atomisp_input_stream_id stream_id,
				enum ia_css_pipe_id css_pipe_id);

void ia_css_mmu_invalidate_cache(void);

int atomisp_css_start(struct atomisp_sub_device *asd);

void atomisp_css_update_isp_params(struct atomisp_sub_device *asd);
void atomisp_css_update_isp_params_on_pipe(struct atomisp_sub_device *asd,
	struct ia_css_pipe *pipe);

int atomisp_css_queue_buffer(struct atomisp_sub_device *asd,
			     enum atomisp_input_stream_id stream_id,
			     enum ia_css_pipe_id pipe_id,
			     enum ia_css_buffer_type buf_type,
			     struct atomisp_css_buffer *isp_css_buffer);

int atomisp_css_dequeue_buffer(struct atomisp_sub_device *asd,
			       enum atomisp_input_stream_id stream_id,
			       enum ia_css_pipe_id pipe_id,
			       enum ia_css_buffer_type buf_type,
			       struct atomisp_css_buffer *isp_css_buffer);

int atomisp_css_allocate_stat_buffers(struct atomisp_sub_device *asd,
				      u16 stream_id,
				      struct atomisp_s3a_buf *s3a_buf,
				      struct atomisp_dis_buf *dis_buf,
				      struct atomisp_metadata_buf *md_buf);

void atomisp_css_free_stat_buffers(struct atomisp_sub_device *asd);

void atomisp_css_free_3a_buffer(struct atomisp_s3a_buf *s3a_buf);

void atomisp_css_free_dis_buffer(struct atomisp_dis_buf *dis_buf);

void atomisp_css_free_metadata_buffer(struct atomisp_metadata_buf
				      *metadata_buf);

int atomisp_css_get_grid_info(struct atomisp_sub_device *asd,
			      enum ia_css_pipe_id pipe_id);

int atomisp_alloc_3a_output_buf(struct atomisp_sub_device *asd);

int atomisp_alloc_dis_coef_buf(struct atomisp_sub_device *asd);

Annotation

Implementation Notes