drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c- Extension
.c- Size
- 59540 bytes
- Lines
- 1881
- 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
debug.hlinux/args.hlinux/string.hia_css_debug.hia_css_debug_pipe.hia_css_irq.hia_css_stream.hia_css_pipeline.hia_css_isp_param.hsh_css_params.hia_css_bufq.hia_css_queue.hia_css_isp_params.hsystem_local.hassert_support.hprint_support.hfifo_monitor.hinput_formatter.hdma.hirq.hgp_device.hsp.hisp.htype_support.hinput_system.hia_css_tagger_common.hsh_css_internal.hia_css_isys.hsh_css_sp.hcss_trace.hdevice_access.hanr/anr_1.0/ia_css_anr.host.h
Detected Declarations
function ia_css_debug_dtracefunction ia_css_debug_set_dtrace_levelfunction ia_css_debug_get_dtrace_levelfunction debug_print_fifo_channel_statefunction ia_css_debug_dump_pif_a_isp_fifo_statefunction ia_css_debug_dump_pif_b_isp_fifo_statefunction ia_css_debug_dump_str2mem_sp_fifo_statefunction ia_css_debug_dump_all_fifo_statefunction debug_binary_info_printfunction ia_css_debug_binary_printfunction ia_css_debug_frame_printfunction ia_css_debug_print_sp_debug_statefunction ia_css_debug_dump_sp_sw_debug_infofunction ia_css_start_spfunction ia_css_debug_wake_up_spfunction findf_dmem_paramsfunction ia_css_debug_dump_isp_paramsfunction sh_css_dump_sp_raw_copy_linecountfunction ia_css_debug_dump_isp_binaryfunction ia_css_debug_mode_initfunction ia_css_debug_mode_disable_dma_channelfunction ia_css_debug_mode_enable_dma_channelfunction __printffunction ia_css_debug_pipe_graph_dump_framefunction ia_css_debug_pipe_graph_dump_prologuefunction ia_css_debug_pipe_graph_dump_epiloguefunction ia_css_debug_pipe_graph_dump_stagefunction ia_css_debug_pipe_graph_dump_sp_raw_copyfunction ia_css_debug_pipe_graph_dump_stream_configfunction ia_css_debug_dump_resolutionfunction ia_css_debug_dump_frame_infofunction ia_css_debug_dump_capture_configfunction ia_css_debug_dump_pipe_extra_configfunction ia_css_debug_dump_pipe_configfunction ia_css_debug_dump_stream_config_sourcefunction ia_css_debug_dump_mipi_buffer_configfunction ia_css_debug_dump_metadata_configfunction ia_css_debug_dump_stream_configfunction valuesfunction ia_css_debug_dump_tracefunction ia_css_debug_pc_dump
Annotated Snippet
if (bi->out_frame_info[i].res.width != 0) {
ia_css_debug_dtrace(2,
"out%d: %dx%d, format = %d, padded width = %d\n",
i,
bi->out_frame_info[i].res.width,
bi->out_frame_info[i].res.height,
bi->out_frame_info[i].format,
bi->out_frame_info[i].padded_width);
}
}
ia_css_debug_dtrace(2,
"vf out: %dx%d, format = %d, padded width = %d\n",
bi->vf_frame_info.res.width,
bi->vf_frame_info.res.height,
bi->vf_frame_info.format,
bi->vf_frame_info.padded_width);
ia_css_debug_dtrace(2, "online = %d\n", bi->online);
ia_css_debug_dtrace(2, "input_buf_vectors = %d\n",
bi->input_buf_vectors);
ia_css_debug_dtrace(2, "deci_factor_log2 = %d\n", bi->deci_factor_log2);
ia_css_debug_dtrace(2, "vf_downscale_log2 = %d\n",
bi->vf_downscale_log2);
ia_css_debug_dtrace(2, "dis_deci_factor_log2 = %d\n",
bi->dis.deci_factor_log2);
ia_css_debug_dtrace(2, "dis hor coef num = %d\n",
bi->dis.coef.pad.width);
ia_css_debug_dtrace(2, "dis ver coef num = %d\n",
bi->dis.coef.pad.height);
ia_css_debug_dtrace(2, "dis hor proj num = %d\n",
bi->dis.proj.pad.height);
ia_css_debug_dtrace(2, "sctbl_width_per_color = %d\n",
bi->sctbl_width_per_color);
ia_css_debug_dtrace(2, "s3atbl_width = %d\n", bi->s3atbl_width);
ia_css_debug_dtrace(2, "s3atbl_height = %d\n", bi->s3atbl_height);
return;
}
void ia_css_debug_frame_print(const struct ia_css_frame *frame,
const char *descr)
{
char *data = NULL;
assert(frame);
assert(descr);
data = (char *)HOST_ADDRESS(frame->data);
ia_css_debug_dtrace(2, "frame %s (%p):\n", descr, frame);
ia_css_debug_dtrace(2, " resolution = %dx%d\n",
frame->frame_info.res.width, frame->frame_info.res.height);
ia_css_debug_dtrace(2, " padded width = %d\n",
frame->frame_info.padded_width);
ia_css_debug_dtrace(2, " format = %d\n", frame->frame_info.format);
switch (frame->frame_info.format) {
case IA_CSS_FRAME_FORMAT_NV12:
case IA_CSS_FRAME_FORMAT_NV16:
case IA_CSS_FRAME_FORMAT_NV21:
case IA_CSS_FRAME_FORMAT_NV61:
ia_css_debug_dtrace(2, " Y = %p\n",
data + frame->planes.nv.y.offset);
ia_css_debug_dtrace(2, " UV = %p\n",
data + frame->planes.nv.uv.offset);
break;
case IA_CSS_FRAME_FORMAT_YUYV:
case IA_CSS_FRAME_FORMAT_UYVY:
case IA_CSS_FRAME_FORMAT_CSI_MIPI_YUV420_8:
case IA_CSS_FRAME_FORMAT_CSI_MIPI_LEGACY_YUV420_8:
case IA_CSS_FRAME_FORMAT_YUV_LINE:
ia_css_debug_dtrace(2, " YUYV = %p\n",
data + frame->planes.yuyv.offset);
break;
case IA_CSS_FRAME_FORMAT_YUV420:
case IA_CSS_FRAME_FORMAT_YUV422:
case IA_CSS_FRAME_FORMAT_YUV444:
case IA_CSS_FRAME_FORMAT_YV12:
case IA_CSS_FRAME_FORMAT_YV16:
case IA_CSS_FRAME_FORMAT_YUV420_16:
case IA_CSS_FRAME_FORMAT_YUV422_16:
ia_css_debug_dtrace(2, " Y = %p\n",
data + frame->planes.yuv.y.offset);
ia_css_debug_dtrace(2, " U = %p\n",
data + frame->planes.yuv.u.offset);
ia_css_debug_dtrace(2, " V = %p\n",
data + frame->planes.yuv.v.offset);
break;
case IA_CSS_FRAME_FORMAT_RAW_PACKED:
ia_css_debug_dtrace(2, " RAW PACKED = %p\n",
data + frame->planes.raw.offset);
break;
case IA_CSS_FRAME_FORMAT_RAW:
ia_css_debug_dtrace(2, " RAW = %p\n",
Annotation
- Immediate include surface: `debug.h`, `linux/args.h`, `linux/string.h`, `ia_css_debug.h`, `ia_css_debug_pipe.h`, `ia_css_irq.h`, `ia_css_stream.h`, `ia_css_pipeline.h`.
- Detected declarations: `function ia_css_debug_dtrace`, `function ia_css_debug_set_dtrace_level`, `function ia_css_debug_get_dtrace_level`, `function debug_print_fifo_channel_state`, `function ia_css_debug_dump_pif_a_isp_fifo_state`, `function ia_css_debug_dump_pif_b_isp_fifo_state`, `function ia_css_debug_dump_str2mem_sp_fifo_state`, `function ia_css_debug_dump_all_fifo_state`, `function debug_binary_info_print`, `function ia_css_debug_binary_print`.
- 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.