drivers/staging/media/atomisp/pci/sh_css_internal.h
Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/sh_css_internal.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/atomisp/pci/sh_css_internal.h- Extension
.h- Size
- 29270 bytes
- Lines
- 957
- 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
linux/build_bug.hlinux/math.hlinux/stdarg.hsystem_global.hmath_support.htype_support.hplatform_support.hinput_formatter.hinput_system.hia_css_types.hia_css_acc_types.hia_css_buffer.hia_css_binary.hsh_css_firmware.hsh_css_legacy.hsh_css_defs.hsh_css_uds.hdma.hia_css_circbuf_comm.hia_css_frame_comm.hia_css_3a.hia_css_dvs.hia_css_metadata.hruntime/bufq/interface/ia_css_bufq.hia_css_timer.h
Detected Declarations
struct sh_css_ddr_address_mapstruct sh_css_ddr_address_map_sizestruct sh_css_ddr_address_map_compoundstruct ia_css_isp_parameter_set_infostruct sh_css_binary_argsstruct sh_css_sp_debug_statestruct sh_css_sp_debug_tracestruct sh_css_sp_debug_statestruct sh_css_sp_debug_tracestruct sh_css_sp_debug_statestruct sh_css_sp_debug_statestruct sh_css_sp_debug_commandstruct sh_css_sp_input_formatter_setstruct sh_css_sp_configstruct sh_css_sp_pipeline_terminalstruct sh_css_sp_pipeline_iostruct sh_css_sp_pipeline_io_statusstruct sh_css_sp_pipelinestruct ia_css_frames_spstruct sh_css_isp_stagestruct sh_css_sp_stagestruct sh_css_sp_groupstruct sh_css_sp_per_frame_datastruct sh_css_sp_outputstruct sh_css_hmm_bufferstruct frame_data_wrapperstruct sh_css_event_irq_maskstruct host_sp_communicationstruct host_sp_queuesenum sh_css_order_binariesenum sh_css_pipe_config_overrideenum host2sp_commandsenum sh_css_sp_event_typeenum sh_css_stage_typeenum sh_css_port_direnum sh_css_port_typeenum sh_css_queue_typefunction __printffunction __printf
Annotated Snippet
struct sh_css_ddr_address_map {
ia_css_ptr isp_param;
ia_css_ptr isp_mem_param[SH_CSS_MAX_STAGES][IA_CSS_NUM_MEMORIES];
ia_css_ptr macc_tbl;
ia_css_ptr fpn_tbl;
ia_css_ptr sc_tbl;
ia_css_ptr tetra_r_x;
ia_css_ptr tetra_r_y;
ia_css_ptr tetra_gr_x;
ia_css_ptr tetra_gr_y;
ia_css_ptr tetra_gb_x;
ia_css_ptr tetra_gb_y;
ia_css_ptr tetra_b_x;
ia_css_ptr tetra_b_y;
ia_css_ptr tetra_ratb_x;
ia_css_ptr tetra_ratb_y;
ia_css_ptr tetra_batr_x;
ia_css_ptr tetra_batr_y;
ia_css_ptr dvs_6axis_params_y;
};
#define SIZE_OF_SH_CSS_DDR_ADDRESS_MAP_STRUCT \
(SIZE_OF_HRT_VADDRESS + \
(SH_CSS_MAX_STAGES * IA_CSS_NUM_MEMORIES * SIZE_OF_HRT_VADDRESS) + \
(16 * SIZE_OF_HRT_VADDRESS))
static_assert(sizeof(struct sh_css_ddr_address_map) == SIZE_OF_SH_CSS_DDR_ADDRESS_MAP_STRUCT);
/* xmem address map allocation per pipeline */
struct sh_css_ddr_address_map_size {
size_t isp_param;
size_t isp_mem_param[SH_CSS_MAX_STAGES][IA_CSS_NUM_MEMORIES];
size_t macc_tbl;
size_t fpn_tbl;
size_t sc_tbl;
size_t tetra_r_x;
size_t tetra_r_y;
size_t tetra_gr_x;
size_t tetra_gr_y;
size_t tetra_gb_x;
size_t tetra_gb_y;
size_t tetra_b_x;
size_t tetra_b_y;
size_t tetra_ratb_x;
size_t tetra_ratb_y;
size_t tetra_batr_x;
size_t tetra_batr_y;
size_t dvs_6axis_params_y;
};
struct sh_css_ddr_address_map_compound {
struct sh_css_ddr_address_map map;
struct sh_css_ddr_address_map_size size;
};
struct ia_css_isp_parameter_set_info {
struct sh_css_ddr_address_map
mem_map;/** pointers to Parameters in ISP format IMPT:
This should be first member of this struct */
u32
isp_parameters_id;/** Unique ID to track which config was actually applied to a particular frame */
ia_css_ptr
output_frame_ptr;/** Output frame to which this config has to be applied (optional) */
};
/* this struct contains all arguments that can be passed to
a binary. It depends on the binary which ones are used. */
struct sh_css_binary_args {
struct ia_css_frame *in_frame; /* input frame */
const struct ia_css_frame
*delay_frames[MAX_NUM_VIDEO_DELAY_FRAMES]; /* reference input frame */
const struct ia_css_frame *tnr_frames[NUM_VIDEO_TNR_FRAMES]; /* tnr frames */
struct ia_css_frame
*out_frame[IA_CSS_BINARY_MAX_OUTPUT_PORTS]; /* output frame */
struct ia_css_frame *out_vf_frame; /* viewfinder output frame */
bool copy_vf;
bool copy_output;
unsigned int vf_downscale_log2;
};
#if SP_DEBUG == SP_DEBUG_DUMP
#define SH_CSS_NUM_SP_DEBUG 48
struct sh_css_sp_debug_state {
unsigned int error;
unsigned int debug[SH_CSS_NUM_SP_DEBUG];
};
#elif SP_DEBUG == SP_DEBUG_COPY
Annotation
- Immediate include surface: `linux/build_bug.h`, `linux/math.h`, `linux/stdarg.h`, `system_global.h`, `math_support.h`, `type_support.h`, `platform_support.h`, `input_formatter.h`.
- Detected declarations: `struct sh_css_ddr_address_map`, `struct sh_css_ddr_address_map_size`, `struct sh_css_ddr_address_map_compound`, `struct ia_css_isp_parameter_set_info`, `struct sh_css_binary_args`, `struct sh_css_sp_debug_state`, `struct sh_css_sp_debug_trace`, `struct sh_css_sp_debug_state`, `struct sh_css_sp_debug_trace`, `struct sh_css_sp_debug_state`.
- 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.