drivers/staging/media/atomisp/pci/sh_css_params.c
Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/sh_css_params.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/atomisp/pci/sh_css_params.c- Extension
.c- Size
- 153363 bytes
- Lines
- 4550
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/overflow.hlinux/math.hgdc_device.hisp.hvamem.hhmem.hhmm.hsh_css_params.hia_css_queue.hsw_event_global.hplatform_support.hassert_support.hia_css_stream.hsh_css_params_internal.hsh_css_param_shading.hsh_css_param_dvs.hia_css_refcount.hsh_css_internal.hia_css_control.hia_css_shading.hsh_css_defs.hsh_css_sp.hia_css_pipeline.hia_css_debug.hia_css_isp_param.hia_css_isp_params.hia_css_mipi.hia_css_morph.hia_css_host_data.hia_css_pipe.hia_css_pipe_binarydesc.hanr/anr_1.0/ia_css_anr.host.h
Detected Declarations
struct ia_css_isp_skc_dvs_statisticsfunction Copyrightfunction sctbl_bytesfunction morph_plane_bytesfunction sh_css_params_ddr_address_mapfunction wordfunction store_fpntblfunction convert_raw_to_fpnfunction numberfunction ia_css_process_kernelfunction sh_css_select_dp_10bpp_configfunction DPCfunction sh_css_set_black_framefunction sh_css_params_set_binning_factorfunction sh_css_set_shading_tablefunction ia_css_params_store_ia_css_host_datafunction ia_css_params_alloc_convert_sctblfunction ia_css_params_store_sctblfunction sh_css_enable_pipelinefunction ia_css_process_zoom_and_motionfunction sh_css_set_gamma_tablefunction sh_css_get_gamma_tablefunction sh_css_set_ctc_tablefunction sh_css_get_ctc_tablefunction sh_css_set_macc_tablefunction sh_css_get_macc_tablefunction ia_css_morph_table_freefunction sh_css_params_default_morph_tablefunction sh_css_set_morph_tablefunction ia_css_translate_3a_statisticsfunction ia_css_isp_3a_statistics_map_freefunction ia_css_isp_3a_statistics_map_allocatefunction ia_css_get_3a_statisticsfunction ia_css_set_param_exceptionsfunction sh_css_set_nr_configfunction sh_css_set_ee_configfunction sh_css_get_ee_configfunction sh_css_set_pipe_dvs_6axis_configfunction sh_css_get_pipe_dvs_6axis_configfunction sh_css_set_baa_configfunction sh_css_get_baa_configfunction sh_css_set_dz_configfunction sh_css_get_dz_configfunction sh_css_set_motion_vectorfunction sh_css_get_motion_vectorfunction sh_css_pipe_isp_config_getfunction ia_css_stream_set_isp_configfunction ia_css_stream_set_isp_config_on_pipe
Annotated Snippet
struct ia_css_isp_skc_dvs_statistics {
ia_css_ptr p_data;
};
static int
ref_sh_css_ddr_address_map(
struct sh_css_ddr_address_map *map,
struct sh_css_ddr_address_map *out);
static int
write_ia_css_isp_parameter_set_info_to_ddr(
struct ia_css_isp_parameter_set_info *me,
ia_css_ptr *out);
static int
free_ia_css_isp_parameter_set_info(ia_css_ptr ptr);
static int
sh_css_params_write_to_ddr_internal(
struct ia_css_pipe *pipe,
unsigned int pipe_id,
struct ia_css_isp_parameters *params,
const struct ia_css_pipeline_stage *stage,
struct sh_css_ddr_address_map *ddr_map,
struct sh_css_ddr_address_map_size *ddr_map_size);
static int
sh_css_create_isp_params(struct ia_css_stream *stream,
struct ia_css_isp_parameters **isp_params_out);
static bool
sh_css_init_isp_params_from_global(struct ia_css_stream *stream,
struct ia_css_isp_parameters *params,
bool use_default_config,
struct ia_css_pipe *pipe_in);
static int
sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe,
struct ia_css_isp_parameters *params,
const struct ia_css_isp_config *config,
struct ia_css_pipe *pipe_in);
static int
sh_css_set_global_isp_config_on_pipe(
struct ia_css_pipe *curr_pipe,
const struct ia_css_isp_config *config,
struct ia_css_pipe *pipe);
static int
sh_css_set_per_frame_isp_config_on_pipe(
struct ia_css_stream *stream,
const struct ia_css_isp_config *config,
struct ia_css_pipe *pipe);
static int
sh_css_update_uds_and_crop_info_based_on_zoom_region(
const struct ia_css_binary_info *info,
const struct ia_css_frame_info *in_frame_info,
const struct ia_css_frame_info *out_frame_info,
const struct ia_css_resolution *dvs_env,
const struct ia_css_dz_config *zoom,
const struct ia_css_vector *motion_vector,
struct sh_css_uds_info *uds, /* out */
struct sh_css_crop_pos *sp_out_crop_pos, /* out */
struct ia_css_resolution pipe_in_res,
bool enable_zoom);
ia_css_ptr
sh_css_params_ddr_address_map(void)
{
return sp_ddr_ptrs;
}
/* ****************************************************
* Each coefficient is stored as 7bits to fit 2 of them into one
* ISP vector element, so we will store 4 coefficents on every
* memory word (32bits)
*
* 0: Coefficient 0 used bits
* 1: Coefficient 1 used bits
* 2: Coefficient 2 used bits
* 3: Coefficient 3 used bits
* x: not used
*
* xx33333332222222 | xx11111110000000
*
* ***************************************************
*/
static struct ia_css_host_data *
convert_allocate_fpntbl(struct ia_css_isp_parameters *params)
Annotation
- Immediate include surface: `linux/overflow.h`, `linux/math.h`, `gdc_device.h`, `isp.h`, `vamem.h`, `hmem.h`, `hmm.h`, `sh_css_params.h`.
- Detected declarations: `struct ia_css_isp_skc_dvs_statistics`, `function Copyright`, `function sctbl_bytes`, `function morph_plane_bytes`, `function sh_css_params_ddr_address_map`, `function word`, `function store_fpntbl`, `function convert_raw_to_fpn`, `function number`, `function ia_css_process_kernel`.
- 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.